본문 바로가기

# 소쿠리 개발 공부방/코테 문제풀이

[BAEKJOON] [18870] 좌표 압축: PYTHON

[18870] 좌표 압축

 

18870번: 좌표 압축

수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에

www.acmicpc.net

Input

  • 첫째 줄에 N
  • 둘째 줄에는 공백 한 칸으로 구분된 X1, X2, ..., XN

Output

  • Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족
  • 첫째 줄에 X'1, X'2, ..., X'N을 공백 한 칸으로 구분해서 출력

 

✨ Solve

  • 입력값 중복제거, 정렬 후 새로운 인덱스 출력

 

💻 Code

### 언어 python3, 메모리 154800KB, 시간 1960ms

n =  int(input())
numbers = list(map(int, input().split()))

zip = set(numbers)
zip = list(zip)
zip.sort()

zip_dict = {}
for i in range(len(zip)):
    zip_dict[zip[i]]=i

for number in numbers:
    print(zip_dict[number], end=' ')

 

https://www.acmicpc.net/problem/18870