https://www.acmicpc.net/problem/2910
문제 풀이
- dictionary에 등장 순서, 빈도수를 저장한다.
- 빈도수를 내림차순, 등장 순서를 오름차순으로 정렬
N, C = map(int, input().split()) # N개의 숫자, C보다 작다
num_list = list(map(int, input().split())) # 메시지 수열
dict_info = {} # [0] 등장 순서, [1] 빈도수
idx = 1
answer = ''
for num in num_list:
if num in dict_info:
dict_info[num][0] += 1
else:
dict_info[num] = [1, idx]
idx += 1
sorted_num = sorted(dict_info.items(), key=lambda x: [-x[1][0], x[1][1]])
for key, value in sorted_num:
answer += (str(key) + ' ') * value[0]
print(answer[:-1])
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 1744번 수묶기 (0) | 2023.04.08 |
---|---|
[백준] 2170번 선긋기 (0) | 2023.04.08 |
[백준] 11501번 주식 (0) | 2023.04.08 |
[백준] 1541번 잃어버린 괄호 (0) | 2023.04.08 |
[백준] 9996번 한국이 그리울땐 서버에 접속하지 (0) | 2023.04.07 |