코딩테스트/백준

백준 18870 : 좌표 압축 _자바 Java

플래시🦥 2023. 1. 29.
반응형

https://www.acmicpc.net/problem/18870

 

18870번: 좌표 압축

수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌

www.acmicpc.net


import java.util.*;

public class Main {
		
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		 StringBuilder sb = new StringBuilder();
		 int cnt=0;
		int N = sc. nextInt();
		int[] point = new int[N];
		int[] sorted = new int[N];
		for(int i=0; i<N;i++) {
			point[i]=sorted[i]=sc.nextInt();
		}
		Arrays.sort(sorted);
		HashMap<Integer, Integer> hmap = new HashMap<>();
		for(int i = 0 ; i < sorted.length ; i++) {
   	 		if(!hmap.containsKey(sorted[i]))
   	 			hmap.put(sorted[i], cnt++);
   	 	}
   	 	
   	 	for(int i = 0; i < N ; i++) {
   	 		sb.append(hmap.get(point[i])).append(" ");
   	 	}
   	 	
   	 	System.out.println(sb.toString());
	}// main()

}// class Main

 

728x90
반응형

댓글