18870번: 좌표 압축백준/단계별로 풀어보기2023. 6. 5. 15:42
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/18870
언어 : Kotlin
문제 설명 :
수직선 위에 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초
- 메모리 제한 : 128MB
- 1 ≤ N ≤ 1,000,000
- -109 ≤ Xi ≤ 109
입출력 예 :
입력 | 출력 |
5 2 4 -10 4 -9 |
2 3 0 3 1 |
6 1000 999 1000 999 1000 999 |
1 0 1 0 1 0 |
풀이 :
import java.io.*
fun main(args: Array<String>) {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val n = br.readLine().toInt()
val arr = br.readLine().split(" ").map { it.toInt() }
val sortedArr = arr.distinct().sorted()
for (i in 0 until n) {
bw.write("${sortedArr.binarySearch(arr[i])} ")
}
bw.flush()
bw.close()
}
'백준 > 단계별로 풀어보기' 카테고리의 다른 글
14425번: 문자열 집합 (0) | 2023.06.06 |
---|---|
10815번: 숫자 카드 (0) | 2023.06.06 |
10814번: 나이순 정렬 (0) | 2023.06.05 |
1181번: 단어 정렬 (0) | 2023.06.05 |
11651번: 좌표 정렬하기 2 (0) | 2023.06.05 |
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!