본문 바로가기

카테고리 없음

파이썬) 영단어 암기는 괴로워 - BOJ

 

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

import sys
input = sys.stdin.readline
dic = {}


n, m = map(int, input().split())

for i in range(n):
    s = input().rstrip()

    if len(s) >= m:
        if s not in dic:
            dic[s] = 1

        else:
            dic[s] += 1


arr = sorted(dic.items(), key=lambda x: (-x[1], -len(x[0]), x[0]))

for i in arr:
    print(i[0])

이 문제는 주어진 조건만 달성하면 무난하게 풀 수 있는 문제이다.

먼저 딕셔너리에 영단어와 그 개수를 넣는다. 넣을 때 영단어의 길이를 확인한다.

그 다음 

  1. 자주 나오는 단어일수록 앞에 배치한다.
  2. 해당 단어의 길이가 길수록 앞에 배치한다.
  3. 알파벳 사전 순으로 앞에 있는 단어일수록 앞에 배치한다

라는 조건에 맞게 정렬하면 끝이난다.