반응형
문제: https://www.acmicpc.net/problem/18870
문제 설명
더보기
문제
수직선 위에 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을 공백 한 칸으로 구분해서 출력한다.
정답
import sys
input = sys.stdin.readline
N = int(input())
array = list(map(int, input().split()))
s = sorted(list(set(array)))
d = {}
for idx, value in enumerate(s):
d[value] = idx
for n in array:
print(d[n], end=' ')
풀이
더보기
import sys
input = sys.stdin.readline
N = int(input())
array = list(map(int, input().split()))
s = sorted(list(set(array)))
d = {}
for idx, value in enumerate(s):
d[value] = idx
for n in array:
print(d[n], end=' ')
좌표를 입력받아 순서대로 수를 변환하여 출력하는 문제입니다. 입력받은 수를 정렬하여 해당 값의 인덱스로 변환하여 출력을 하면 되는 간단한 문제입니다.반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준 2167번 - 2차원 배열의 합 / Python (0) | 2021.09.14 |
---|---|
백준 1010번 - 다리 놓기 / Python (0) | 2021.09.10 |
백준 10814번 - 나이순 정렬 / Python (0) | 2021.09.08 |
백준 1181번 - 단어 정렬 / Python (0) | 2021.09.08 |
백준 11651번 - 좌표 정렬하기 2 / Python (0) | 2021.09.08 |