백준 20920 - 영단어 암기는 괴로워

TechN0·2025년 1월 11일

알고말고 알고리즘

목록 보기
14/22
post-thumbnail

문제

https://www.acmicpc.net/problem/20920

풀이

  • 입력 받은 단어들 중 글자 수 가 M 이상인 녀석들을 리스트 words 로 만들어주자
  • words 에서 단어들의 등장 횟수를 카운트 해 딕셔너리 cnt 맹금
  • cnt.key는 중복이 없으니 이걸 sorted 할 거임
  • 우선순위가
    1. 등장 빈도 높은 순(내림차순)

    2. 알파벳 긴 순(내림차순)

    3. 사전 순(기본 오름차순)

      임으로 lambda 를 활용해 조건을 세 개 걸어준다.

코드

from collections import Counter

N, M = map(int, input().split())
words = []
for _ in range(N):
    word = input()
    if len(word) >= M:
        words.append(word)

cnt = Counter(words)

wordsBoock = sorted(cnt.keys(), key=lambda x: (-cnt[x], -len(x), x))

for i in wordsBoock:
    print(i)

0개의 댓글