https://www.acmicpc.net/problem/1181
https://github.com/stellaluminary/Baekjoon
초기 시도
우선 단어들에 대한 입력을 받아 길이별로 list를 넣는다.
이후 1개 이상의 리스트일 때 중복 없게 하기위한 set과 더불어 사전 순을 위한 sort를 사용한다.
import sys
input = sys.stdin.readline
n = int(input())
l = [input().rstrip() for i in range(n)]
t = [[] for _ in range(51)]
for i in range(len(l)):
t[len(l[i])].append(l[i])
for i in range(len(t)):
if len(t[i]) == 0:
continue
elif len(t[i]) == 1:
print(t[i][0])
else:
t[i] = list(set(t[i]))
t[i].sort()
for j in range(len(t[i])):
print(t[i][j])
초기 sort를 통해 사전순으로 정렬한다.
이후 key=len을 통해 재정렬을 진행함으로써 길이별로 정렬을 진행
import sys
input = sys.stdin.readline
n = int(input())
l = [input().rstrip() for i in range(n)]
l = list(set(l))
l.sort()
l.sort(key=len)
for i in l:
print(i)
길이에 대한 정보와 함께 단어를 함께 list에 저장하고 sort를 진행하면 순차적으로 정렬되는 것을 확인할 수 있다.
이를 통한 결과를 도출한다.
import sys
input = sys.stdin.readline
n = int(input())
l = [input().rstrip() for i in range(n)]
l = list(set(l))
t = []
for i in l:
t.append((len(i), i))
t.sort()
for length, word in t:
print(word)