
집합은 중복을 허용하지 않지만, 순서를 보장하지 않으므로
입력을 집합으로 받아 중복을 제거하고,
집합에서는 sorted()를 이용할 수 없으므로 리스트로 변환하고,
key를 lamda x:(len(x), x))로 튜플로 반환하도록 하여 길이를 우선순위로 정렬하고 알파벳순으로 정렬되게 하였다.
n = int(input())
a = set()
for i in range(n):
a.add(input())
arr = sorted(list(a), key=lambda x:(len(x), x))
for word in arr:
print(word)

import sys
input = sys.stdin.readline
N = int(input())
S = [set() for i in range(51)]
for i in range(N):
s = input().strip()
S[len(s)].add(s)
for i in range(51):
if S[i]:
print("\n".join(sorted(S[i])))
문제에서 문자열의 길이는 50을 넘지 않다고 하였으므로,
미리 51개의 길이 집합을 담은 배열을 만들어 2차원 배열처럼 사용하여 시간을 단축시킬 수 있다.