백준 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 |