https://www.acmicpc.net/problem/18870
import sys
input = sys.stdin.readline
n = int(input().strip())
lists = list(map(int,input().split()))
sort_list = sorted(list(set(lists))) # 중복된걸 제외하고 정렬한다.
dicts = {}
for i ,val in enumerate(sort_list):
dicts[val] = i
for i in lists:
print(dicts[i],end = " ")
순간 방법이 안 떠올라서 고민하고 있다가 막힐때는 dict를 먼저 고민하자고 생각했었던게 기억이 나고 보니 바로 풀렸다.
중복되어 있는 요소를 제거하고 정렬해서 각 숫자의 순위를 정한 다음에 들어왔던 list를 돌면서 val에 맞는 순위를 print 해줬다.
'백준 문제 풀이 및 피드백' 카테고리의 다른 글
2023.01.18 최소힙 백준[파이썬] (0) | 2023.01.18 |
---|---|
2023.01.18 토마토 백준[파이썬] (0) | 2023.01.18 |
2023.01.18 동전 0 [파이썬] (0) | 2023.01.18 |
2023.01.18 나는야 포켓몬 마스터 이다솜[파이썬] (0) | 2023.01.18 |
2023.01.18 피보나치 함수 백준[파이썬] (0) | 2023.01.18 |