반응형
<풀이>
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(리스트)) 를 하면 된다.
반응형
'Base > Algorithm Study' 카테고리의 다른 글
[Python/파이썬] 백준 알고리즘 1406번 - 에디터 (0) | 2021.08.21 |
---|---|
[Python/파이썬] 백준 알고리즘 18870번 - 좌표 압축 (0) | 2021.08.20 |
[Python/파이썬] 백준 알고리즘 11651번 - 좌표 정렬하기 2 (0) | 2021.08.19 |
[Python/파이썬] 정렬 알고리즘 정리 1 (삽입 정렬, 선택 정렬, 거품 정렬 / Insertion sort, Selection sort, Bubble sort) (백준 알고리즘 2750번 - 수 정렬하기) (0) | 2021.08.17 |
[Python/파이썬] 백준 알고리즘 7568번 - 덩치 (2) | 2021.08.17 |