Base/Algorithm Study

[Python/파이썬] 백준 알고리즘 1181번 - 단어 정렬

koh1018 2021. 8. 20. 19:54
반응형

 

 

 

<풀이>

N = int(input())

words_list = []
for _ in range(N):
    word = input()
    words_list.append((word, len(word)))

# 중복 제거
words_list = list(set(words_list))

# 단어 길이 정렬 > 단어 알파벳 정렬
words_list.sort(key=lambda word: (word[1], word[0]))

for word in words_list:
    print(word[0])

11651번에서 배웠던 sort함수의 key인자를 이용해 lambda로 정렬할 기준을 잡는 방법을 사용했다.

words_list에는 단어와 단어의 길이가 튜플로 들어가고 key=lambda word: (word[1], word[0])에서 word[1]인 단어길이로 먼저 정렬하고 word[0]로 단어 사전식 정렬을 한다.

 

 

 

<핵심 정리>

1. 리스트안에 string 타입의 영어 단어들을 넣고 sort함수로 정렬시키면 사전식 순서로 정렬된다.

2. 리스트를 형변환없이 중복값만 제거하고 싶다면 list(set(리스트)) 를 하면 된다.

반응형