업데이트:

카테고리: ,

1. 문제

문제는 링크에 들어가면 있다.

2. 정답 코드

문제의 내 정답 코드는 다음과 같다.

N = int(input())
word_array = []

for _ in range(N):
    word = input()
    if not word in word_array :
        word_array.append(word)

# 먼저 사전적 정의로 오름차순 정렬을 적용하자.
word_array.sort()

# 그리고 길이별로 오름차순 정렬을 하면 된다.
word_array.sort(key= lambda x:len(x))

for i in range(len(word_array)):
    print(word_array[i])




3. 문제 풀이

정렬 문제를 아예 안하려고 했는데, 하는게 좋을 것 같다. 여기서 나름 다시한번 생각하게 된게, sort()의 순서에 따라서 array의 정렬이 아주 달라지는 것이다. 길이별로 정렬을 하게되면 쉽지만, 길이가 같은 것이 있을 경우엔 사전적 정의로 정렬을 해야하는데, 길이로 먼저 정렬하고 사전적 정의로 정렬하면 정답이 이상해진다. 그러나, 사전적 정의로 먼저 단어를 배열한 후, 길이로 배열하게되면 같은 길이의 단어들은 이미 사전적 정의에서 올바르게 정렬되어있으므로, 길이별로 정렬될때 묶음으로 정렬되는 느낌을 느낄 수 있다.

최대 1 분 소요