[Baekjoon] 좌표 압축 / Python, 파이썬 / 18870
2022. 12. 11. 19:38ㆍBaekjoon/Silver
728x90
반응형
https://www.acmicpc.net/problem/18870
18870번: 좌표 압축
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌
www.acmicpc.net
문제 설명
더보기
문제
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.
Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다.
X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.
입력
첫째 줄에 N이 주어진다.
둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN이 주어진다.
출력
첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력한다.
제한
- 1 ≤ N ≤ 1,000,000
- -109 ≤ Xi ≤ 109
예제 입력 1
5
2 4 -10 4 -9
예제 출력 1
2 3 0 3 1
예제 입력 2
6
1000 999 1000 999 1000 999
예제 출력 2
1 0 1 0 1 0
문제 풀이
import sys
input = sys.stdin.readline
N = int(input())
array = list(map(int, input().split()))
set_array = list(set(array))
set_array.sort()
mapping = {num:idx for idx, num in enumerate(set_array)}
print(*[mapping[x] for x in array])
728x90
반응형
'Baekjoon > Silver' 카테고리의 다른 글
[Baekjoon] 보물 / Python, 파이썬 / 1026 (0) | 2022.12.11 |
---|---|
[Baekjoon] 시리얼 번호 / Python, 파이썬 / 1431 (0) | 2022.12.11 |
[Baekjoon] 등수 매기기 / Python, 파이썬 / 2012 (0) | 2022.12.08 |
[Baekjoon] 뒤집기 / Python, 파이썬 / 1439 (0) | 2022.12.08 |
[Baekjoon] 효율적인 해킹 / Python, 파이썬 / 1325 (0) | 2022.11.24 |