안녕하세요.
백준 1181 단어 정렬 문제를 python으로 풀어보겠습니다.
링크는 다음과 같습니다.
https://www.acmicpc.net/problem/1181
풀이
보통의 문자열 문제들은 python으로 풀면 매우 간단하게 해결할 수 있습니다.
입력을 list로 받은 뒤, 중복 제거를 위해 set() 를 사용하고, 다시 list로 바꿔줍니다.
정렬을 위해 sort() 를 사용하는데, 일반적으로 sort를 사용하면 사전 순으로 정렬되게 됩니다.
길이 순 정렬을 위해 key 값을 넣어주면 해결할 수 있는데, lambda 식을 사용하면 간단하게 한 줄로 구현할 수 있습니다.
코드는 다음과 같습니다.
import sys # 빠른 입출력을 위해 sys 를 import 했습니다.
N = int(sys.stdin.readline()) # 빠른 입력
word = []
for i in range(N):
word.append(sys.stdin.readline().strip()) # list에 단어 추가
word = list(set(word)) # 중복 제거
word.sort() # 사전 순으로 정렬
word.sort(key= lambda x : len(x)) # 길이 순으로 재정렬
print(*word, sep='\n') # word 리스트의 요소를 한 줄에 하나씩 출력
감사합니다.
'백준 문제풀이 > 문자열' 카테고리의 다른 글
백준 1259 Python / 팰린드롬수 / 브론즈1 (0) | 2023.02.06 |
---|