N = int(input())
d = {}
for n in range(N):
i = input()
d[i] = len(i)
sort = sorted(d.items(), key=lambda num : (num[1], num[0]))
for i in sort:
print(i[0])
정렬 우선 순위를 고려해야한다.
1. 길이가 짧은 것 부터
2. 길이가 같으면 사전 순
3. 동일한 단어는 한번만 출력
처음에 객체 타입을 정해 key, value로 넣으려 하였으나 중복 부분을 따로 처리해야하는 부분이 신경쓰였다. 해서 dict로 수정하기로 하였다.
dict내에 sort()가 없어 sorted함수를 사용하였는데, 리턴 값이 페어 형태의 튜플 pair형었다.
Sort git:(master) ✗ python 1181.py
2
ac
ab
[('ab', 2), ('ac', 2)]
튜플은 중복을 허용하는 자료구조를 갖고있어 유연하게 값을 담을 수 있기 때문에 리턴값으로 이렇게 주는건가 싶다.