딕셔너리를 통해 빈도와 처음 등장한 인덱스를 카운트하고, 이후 딕셔너리 값을
key= lambda x
등을 통해 정렬할 수 있다.
import sys
n, c = map(int, sys.stdin.readline().rstrip().split())
numbers = {}
for idx, num in enumerate(list(map(int, sys.stdin.readline().rstrip().split()))):
num_info = numbers.get(num, [0, idx, num])
num_cnt, num_idx, num = num_info
num_cnt += 1
numbers[num] = [num_cnt, num_idx, num]
# 딕셔너리에 빈도와 처음 나온 인덱스, 숫자 기록
for num_cnt, num_idx, num in sorted(numbers.values(), key= lambda x: (-x[0], x[1])):
# 빈도가 크고, 인덱스가 작은 순서대로 정렬
result = f"{num} "*num_cnt
print(result, end='')