Skip to content

Commit a316e3a

Browse files
committed
[Silver II] Title: 좌표 압축, Time: 3524 ms, Memory: 301396 KB -BaekjoonHub
1 parent 09484cc commit a316e3a

2 files changed

Lines changed: 49 additions & 0 deletions

File tree

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# [Silver II] 좌표 압축 - 18870
2+
3+
[문제 링크](https://www.acmicpc.net/problem/18870)
4+
5+
### 성능 요약
6+
7+
메모리: 301396 KB, 시간: 3524 ms
8+
9+
### 분류
10+
11+
값 / 좌표 압축, 정렬
12+
13+
### 제출 일자
14+
15+
2025년 1월 17일 14:42:56
16+
17+
### 문제 설명
18+
19+
<p>수직선 위에 N개의 좌표 X<sub>1</sub>, X<sub>2</sub>, ..., X<sub>N</sub>이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.</p>
20+
21+
<p>X<sub>i</sub>를 좌표 압축한 결과 X'<sub>i</sub>의 값은 X<sub>i</sub> > X<sub>j</sub>를 만족하는 서로 다른 좌표 X<sub>j</sub>의 개수와 같아야 한다.</p>
22+
23+
<p>X<sub>1</sub>, X<sub>2</sub>, ..., X<sub>N</sub>에 좌표 압축을 적용한 결과 X'<sub>1</sub>, X'<sub>2</sub>, ..., X'<sub>N</sub>를 출력해보자.</p>
24+
25+
### 입력
26+
27+
<p>첫째 줄에 N이 주어진다.</p>
28+
29+
<p>둘째 줄에는 공백 한 칸으로 구분된 X<sub>1</sub>, X<sub>2</sub>, ..., X<sub>N</sub>이 주어진다.</p>
30+
31+
### 출력
32+
33+
<p>첫째 줄에 X'<sub>1</sub>, X'<sub>2</sub>, ..., X'<sub>N</sub>을 공백 한 칸으로 구분해서 출력한다.</p>
34+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
let fs = require('fs');
2+
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
3+
4+
const arr = input[1].split(' ');
5+
const uniqueArr = [...new Set(arr)];
6+
const sortedUniqueArr = uniqueArr.sort((a, b) => a - b);
7+
8+
let myMap = new Map();
9+
for (let i = 0; i < sortedUniqueArr.length; i++) {
10+
myMap.set(uniqueArr[i], i);
11+
}
12+
13+
answer = '';
14+
for (x of arr) answer += myMap.get(x) + ' ';
15+
console.log(answer);

0 commit comments

Comments
 (0)