n개의 단어가 입력되면 중복되는 단어는 제거하고, 길이가 짧은 순서로, 만약 길이가 같다면 사전 순으로 정렬해서 출력하는 문제이다.
정렬하는 로직을 직접 구현하는 것은 매우 어렵지만, Python에는 lambda
식이 있어서 매우 편하게 구현할 수 있다.
전체코드
import sys
input = sys.stdin.readline
n = int(input())
s = { }
for i in range(n):
temp = str(input().strip())
s[temp] = 1
arr = sorted(s, key= lambda x: (len(x), x))
for i in arr:
print(i)
(x1, x2)
처럼 key가 여러개일 경우, 왼쪽부터 순서대로 우선순위라고 생각하면 된다.