[백준 #1181] 단어 정렬(Python)

Updated:

문제 설명

예제 입출력

1181번은 단어가 N개 들어오면 길이가 짧은 것부터 출력하는 문제이다.
길이가 같다면 사전순으로 정렬하게 된다. 실행 시간을 줄이기 위해 input()대신 sys.stdin.readline()을 쓰려 했으나 너무 길다.
그 상황에 끌리는 것으로 써야겠다. 구현은 단어의 길이와 단어를 list에 추가했다. 그리고 set로 형변환을 했는데 이유는 set로 만들게 되면 중복이 제거되기 때문이다. 중복을 제거하고 다시 익숙하고 편-안한 list로 변환하고 정렬을 해버렸다. 정렬이 완료되고 길이를 제외한 단어만 출력해주면 완성이다.

Code


N=int(input())
li=[]
for _ in range(N):
    a=input()
    li.append([len(a),a])

li=list(set(map(tuple, li)))
li.sort()
for i in li:
    print(i[1])

Leave a comment