728x90
반응형
1. 문제 설명
2. 풀이과정
- 입력받은 단어들을 문자열 길이순으로 오름차순 정렬을 한 상태에서 동일한 길이는 또 사전순으로 정렬해야 하므로 각 단어와 문자열의 길이를 딕셔너리로 저장하여 정렬한다.
- sys.stdin.readline() 함수로 입력받기 위해 sys 모듈을 불러온다. import sys
- 전체 단어의 개수를 입력받는다. N = int(sys.stdin.readline())
- 입력받은 단어와 그 길이를 저장할 딕셔너리를 생성한다. d = {}
- 단어의 개수만큼 반복하며 for i in range(N)
- 단어를 각 줄별로 입력받고 word = sys.stdin.readline().rstrip()
- 각 단어를 key로, 문자열의 길이를 value로 저장한다. d[word] = len(word)
- 단어를 입력받을 때는 마지막에 enter를 같이 입력받으므로 rstrip()을 사용해 단어만 가져오고, 각 문자열의 길이는 동일할 수 있으므로 단어를 key로 하여 저장한다.
- 각 단어를 우선 사전순으로 정렬한다. d = sorted(d.items())
- 다시 value(문자열 길이)를 기준으로 오름차순 정렬한다. 이때 전에 정렬한 결과가 튜플로 묶인 리스트로 반환되므로 이를 고려하며 정렬해야 한다. d.sort(key = lambda x: x[1])
- 정렬한 결과를 하나씩 불러오며 단어를 출력한다. for i in d: print(i[0])
반응형
3. 소스코드
import sys
N = int(sys.stdin.readline())
d = {}
for i in range(N):
word = sys.stdin.readline().rstrip()
d[word] = len(word)
d = sorted(d.items())
d.sort(key = lambda x: x[1])
for i in d:
print(i[0])
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 2609번 : 최대공약수와 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.13 |
---|---|
[백준] 1003번 : 피보나치 함수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.13 |
[백준] 1193번 : 분수찾기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.13 |
[백준] 2231번 : 분해합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.13 |
[백준] 9095번 : 1, 2, 3 더하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.12 |
[백준] 2178번 : 미로 탐색 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.11 |
[백준] 1085번 : 직사각형에서 탈출 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.11 |
[백준] 2441번 : 별 찍기 - 4 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.11 |