import sys
input = sys.stdin.readline
n = int(input())
l = list(map(int, input().split())) # 좌표 입력
sl = sorted(set(l)) # 입력 좌표들 중복 제거 및 정렬
d = {}
idx = 0 # 압축된 좌표에 부여할 새 좌표
for i in sl:
d[i] = idx # 각 좌표 당 압축된 새 좌표 부여
idx += 1
for i in l:
print(d[i], end=" ") # 출력
문제풀이
핵심 개념과 풀이 흐름을 짧고 선명하게 정리했습니다.
import sys
input = sys.stdin.readline
cntDic = {} # {숫자 : 갯수} 딕셔너리
n = int(input())
for i in range(n):
num = int(input())
if num not in cntDic: # 아직 키가 아니면
cntDic[num] = 1 # 1
else: # 이미 키가 있으면
cntDic[num] += 1 # +1
result = sorted(cntDic.items(), key=lambda x: x[0]) # 먼저 키로 정렬
result = sorted(result, key=lambda x: x[1], reverse=True) # 값 내림차순으로 정렬
print(result[0][0]) # 가장 앞의 값 출력