백준

[백준/정렬] 2910번 : 빈도 정렬

ydin 2024. 2. 12. 19:29

- 문제 : https://www.acmicpc.net/problem/2910

 

 

딕셔너리에서 이중 정렬하는 거를 맨날 까먹어서 기록한다. 이젠 까먹지 말자!!

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

 

정답 풀이

arr = {숫자 : [횟수, 인덱스]} -> 횟수 내림차순, 횟수 같으면 인덱스 오름차순

 

n, c = map(int, input().split())
numbers = list(map(int, input().split()))

num_dic = {}
for i in range(n):
    number = numbers[i]
    if number in num_dic.keys():
        num_dic[number][0] += 1
    else:
        num_dic[number] = [1, i]
        
result = sorted(num_dic.items(), key = lambda x : (-x[1][0], x[1][1]))

answer = ''
for num, arr in result:
    for i in range(arr[0]):
        answer += str(num) + ' '
        
print(answer)