https://www.acmicpc.net/problem/18870
18870번: 좌표 압축
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌
www.acmicpc.net
# 18870 - Python 3
import sys
input = sys.stdin.readline
n = int(input())
arr = list(map(int, input().split()))
new_arr = list(set(arr)) # 중복 제거한 arr를 새로운 list인 new_arr에 저장
new_arr.sort(reverse = False)
dic = {new_arr[i] : i for i in range(len(new_arr))} # 시간복잡도를 줄이기 위하여 dictionary 사용
for i in arr:
print(dic[i], end=" ")
< line 12 >
- dic = {new_arr[i] : i for i in range(len(new_arr))}
: key를 new_arr[i], value를 i(크기 순서로 나열했을 때, 그 순서)로 하는 dictionary 생성
: 반복문 사용시보다 시간 줄일 수 있음
'코딩' 카테고리의 다른 글
| [Python] 백준 #24263. 알고리즘 수업 - 알고리즘의 수행 시간 2 (0) | 2023.03.13 |
|---|---|
| [Python] 백준 #24262. 알고리즘 수업 - 알고리즘의 수행 시간 1 (0) | 2023.03.13 |
| [Python] 백준 #1427. 소트인사이드 (0) | 2023.03.11 |
| [Python] 백준 #25305. 커트라인 (0) | 2023.03.11 |
| [Python] 백준 #2587. 대표값 2 (0) | 2023.03.11 |