[파이썬/python] 백준 18870번 : 좌표 압축 (🥈2) (값 / 좌표 압축)

시간초과났던 풀이

n = int(input())
arr = list(map(int,input().split()))
s = sorted(set(arr))
ans = []

for i in arr:
    ans.append(s.index(i))
print(*ans)

 

 

시간초과 해결 위해 딕셔너리 이용해서 풀이

n = int(input())
arr = list(map(int,input().split()))
s = sorted(arr)
dic = {}
cnt = 0
ans = []
for i in range(len(arr)):
    if s[i] not in dic:
        dic[s[i]]= cnt
        cnt += 1
        
for i in arr:
    ans.append(dic[i])
print(*ans)

풀리긴 하는데 좀 오래걸리는 것 같기도 하다..

comment