File tree Expand file tree Collapse file tree 1 file changed +51
-0
lines changed Expand file tree Collapse file tree 1 file changed +51
-0
lines changed Original file line number Diff line number Diff line change
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
+ */
You can’t perform that action at this time.
0 commit comments