Silver2 문제


예제를 보면 알다시피 중복되는 값이 있어도 하나로 쳐야 한다.
index를 사용했는데 시간초과가 되었다 ㅜㅜ.
import sys
n = int(sys.stdin.readline().rstrip())
nums = list(map(int,sys.stdin.readline().split()))
nums_set=list(set(nums))
nums_set.sort()
for i in nums:
print(nums_set.index(i),end=' ')
그래서 dict를 사용해서 sort한 값을 넣어주었다. 이 문제에는 dict와 별 차이가 없지만 defaultdict를 사용하면 값을 넣기 편해서 습관이 되어 사용했다
import sys
from collections import defaultdict
n = int(sys.stdin.readline().rstrip())
nums = list(map(int,sys.stdin.readline().split()))
nums_set=list(set(nums))
nums_set.sort()
nums_dict=defaultdict(int)
for i in range(len(nums_set)):
nums_dict[nums_set[i]] = i
for i in nums:
print(nums_dict[i],end=' ')