백준 9086번: 문자열

2023. 9. 1. 08:44개인활동/코테

반응형
n = int(input())
strings = [str(input()) for _ in range(n)]

for i in range(n):
    print(strings[i][0],strings[i][-1], sep='')

방금 푼 문제는 문자열 슬라이싱 문제로 첫 문자와 끝 문자를 띄어쓰기 구분 없이 출력하는 것이 목적이다.

 

출력할 때 한번에 처리하려고 하니 계속 generator가 튀어나와 이 부분에 대해 좀 정리해보고, 숏코드를 뜯어보려고 한다.

 

먼저 내가 보았던 출력값은 다음과 같았다.

<generator object <genexpr> at 0x0000000000000000>

뒤에는 아무래도 메모리 주소인 것 같다. (일부러 다 0으로 바꿔놓았음)

 

일단 generator 객체의 경우에는 입력받은 값을 가지고 있다고 한다. 그리고 호출 시 이를 하나씩 불러오는 역할을 하며

값을 불러올 때 next 함수를 이용하면 된다고 한다.

 

다만 iterable 객체와 generator 객체의 차이점은 iterable은 불러왔던 값을 다시 불러올 수 있지만 generator 객체는 불러왔던 값을 다시 가져올 수 없다고 한다.

 

그럼 이제 숏코드도 한번 보도록 하자

for k in[*open(0)][1:]:print(k[0]+k[-2])

뜯어볼 것은 딱히 없는 듯 하다

나도 그냥 in list로 사용할걸!!

또 그생각을 못하고 있었네요

 

굿


generator 참고자료: https://wikidocs.net/22802

 

 

반응형

'개인활동 > 코테' 카테고리의 다른 글

백준 11720번: 숫자의 합  (0) 2023.09.03
백준 11654번: 아스키코드  (0) 2023.09.03
백준 2743번: 단어 길이 재기  (0) 2023.08.27
백준 27866번: 문자와 문자열  (0) 2023.08.27
백준 1546번: 평균  (0) 2023.08.25