Skip to content

Commit 9e8af43

Browse files
committed
issue #41 좌표압축
1 parent 988f877 commit 9e8af43

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

‎src/backjoon/_18870.java‎

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package backjoon;
2+
// https://www.acmicpc.net/problem/18870
3+
// 좌표 압축
4+
import java.io.BufferedReader;
5+
import java.io.IOException;
6+
import java.io.InputStreamReader;
7+
import java.util.Arrays;
8+
import java.util.HashMap;
9+
import java.util.Map;
10+
import java.util.StringTokenizer;
11+
12+
public class _18870 {
13+
public static void main(String[] args) throws IOException {
14+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
15+
// memory 359492 runtime 1696
16+
int N = Integer.parseInt(br.readLine());
17+
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
18+
int[] nums = new int[N];
19+
for (int i = 0; i < N; i++){
20+
nums[i] = Integer.parseInt(st.nextToken());
21+
}
22+
23+
// 정렬
24+
int[] sortNums = nums.clone();
25+
Arrays.sort(sortNums);
26+
27+
// 중복되지 않는 좌표값과 idx저장
28+
Map<Integer, Integer> map = new HashMap<>();
29+
int idx = 0;
30+
for(int n : sortNums){
31+
if(!map.containsKey(n)){
32+
map.put(n, idx++);
33+
}
34+
}
35+
36+
// 출력
37+
StringBuffer sb = new StringBuffer();
38+
for(int n : nums){
39+
sb.append(map.get(n)).append(" ");
40+
}
41+
System.out.println(sb);
42+
}
43+
}
44+
/*
45+
input
46+
5
47+
2 4 -10 4 -9
48+
49+
output
50+
2 3 0 3 1
51+
*/

0 commit comments

Comments
 (0)