빈도 정렬

면접 대비

시간 제한1초메모리 제한128 MB

요약
최대 1000개의 정수를 빈도 내림차순으로 정렬하고, 빈도가 같으면 입력에서 먼저 등장한 값을 앞에 배치합니다.
난이도

보통10점 중 4점

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

문제

N개의 정수로 이루어진 수열이 주어진다. 수열의 모든 정수는 C 이하이다. 이 수열을 등장 빈도가 높은 값부터 나열하려고 한다.

값 X가 값 Y보다 더 많이 등장하면, 모든 X는 모든 Y보다 앞에 와야 한다. 두 값의 등장 횟수가 같다면, 입력 수열에서 먼저 등장한 값이 앞에 와야 한다.

이 규칙으로 정렬한 수열을 출력하시오.

입력

첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 <= N <= 1,000, 1 <= C <= 1,000,000,000)

둘째 줄에 N개의 정수로 이루어진 수열이 주어진다. 모든 정수는 C 이하이다.

출력

입력으로 주어진 수열을 빈도 정렬한 결과를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    5 2
    2 1 2 1 2
    
    예상 출력
    2 2 2 1 1
    
  2. 예제 2

    입력
    9 3
    1 3 3 3 2 2 2 1 1
    
    예상 출력
    1 1 1 3 3 3 2 2 2
    
  3. 예제 3

    입력
    9 77
    11 33 11 77 54 11 25 25 33
    
    예상 출력
    11 11 11 33 33 25 25 77 54