아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

감사

면접 대비

시간 제한3초메모리 제한512 MB

요약
3N개의 메모에서 각 줄이 나온 횟수를 세고, 빈도가 같으면 마지막 등장이 더 늦은 항목을 앞세워 상위 K개를 출력한다.
난이도

보통10점 중 4점

유형
해시맵, 정렬, 문자열, 구현
정답자
아직 제출이 없습니다

문제

Ben은 Emmons와 McCullough의 연구를 접했다. 그 연구에 따르면 감사를 의식적으로 연습하면 행복감이 오래 지속된다고 한다. Ben도 행복해지고 싶어서, 매일 하루를 마무리할 때 그날을 되돌아보며 감사한 일 세 가지를 한 줄에 하나씩 적기로 했다. 이 연습을 NN일 동안 한 뒤, Ben은 자신의 목록에서 어떤 일이 가장 자주 등장하는지 궁금해졌다. Ben이 가장 자주 감사한 KK가지 일을 구하도록 도와주자.

입력

첫째 줄에 두 정수 NN과 KK가 공백을 사이에 두고 순서대로 주어진다. 이어서 NN일 동안의 Ben의 기록 3N3N줄이 주어진다. 같은 날에 해당하는 세 줄에는 중복이 없다고 가정해도 된다. 즉, 입력을 연속한 33줄씩 NN개의 묶음으로 나눌 때, 어떤 묶음에도 서로 같은 줄이 두 번 나오지 않는다.

출력

Ben이 감사한 일의 목록을, Ben의 목록에서 등장한 빈도순으로 출력한다. 가장 자주 등장한 항목이 맨 앞에 온다. 빈도가 같은 항목이 두 개 있으면 더 최근에 등장한 항목이 앞에 온다. 즉 등장 횟수가 같으면 입력에서 마지막 등장 위치가 더 뒤인 항목이 출력에서 더 앞에 온다. 마지막으로, Ben의 목록에 서로 다른 항목이 KK개보다 많으면, 정해진 순서에 따라 앞의 KK개 항목만 출력한다.

제한

  • 1≤K≤3N≤100 0001 \le K \le 3N \le 100\,000
  • 입력의 각 줄은 최대 5050개의 (ASCII) 문자를 포함한다.

예제2

  1. 예제 1

    입력
    2 2
    Supportive parents
    Being able to solve a hard problem
    Good food
    Fun game with friends
    Good food
    Being healthy
    
    예상 출력
    Good food
    Being healthy
    
  2. 예제 2

    입력
    2 6
    Supportive parents
    Being able to solve a hard problem
    Good food
    Fun game with friends
    Good food
    Being healthy
    
    예상 출력
    Good food
    Being healthy
    Fun game with friends
    Being able to solve a hard problem
    Supportive parents