🥞 BE
home

20920_영단어 암기는 괴로워

담당자
완료 여부
Solved
요약
날짜
2024/04/07
태그
정렬
난이도
S3
출처
백준

문제 해결 아이디어

이 문제의 핵심은 (파이썬을 기준으로) dictionary를 사용하는 것이다.
노트를 리스트로 구현하여 문제를 풀면 시간 초과가 발생한다. key로 영단어, value로 횟수를 기록한다. 이후, lambda식을 통해 3가지 조건으로 정렬을 하였다.

Tip

딕셔너리 자료형의 정렬은 lambda를 자주 사용하여 정렬하게 된다.
비교할 아이템이 요소가 복수 개일 경우, 튜플로 우선순위를 정해줄 수 있다.
정렬 기준들의 오름차순 내림차순 설정을 각각 다르게 해주어야 할 경우
-를 붙이면, 현재와 반대차순으로 정렬된다.

코드

import sys input = sys.stdin.readline n, m = map(int, input().split()) note = {} for i in range(n): word = input().strip() # readline 사용 시 발생하는 개행문자 제거. if len(word) >= m: if word in note: note[word] += 1 else: note[word] = 1 note = sorted(note.items(), key=lambda x: (-x[1], -len(x[0]), x[0])) for i in note: print(i[0])
Python
복사