슴새 2021. 8. 5. 17:28
반응형

import java.util.*;
import java.lang.reflect.Array;
 
public class Main {

	public static void main(String[] args) {
		 //현재 좌표보다 작은 좌표들의 개수가 압축값이 되고, 좌표 값이 같은 여러 개의 좌표가 있어도 1개로 취급함
		 Scanner sc=new Scanner(System.in);
		 int n=sc.nextInt();
		 int arr []=new int [n];
		 int sorted_arr []=new int [n];
		 for(int i=0;i<n;i++) {
			 arr[i]=sc.nextInt();
			 sorted_arr[i]=arr[i];
		 }
		 Arrays.sort(sorted_arr);
		 ArrayList <Integer> list=new ArrayList<>();
		 list.add(sorted_arr[0]);
		 for(int i=1;i<n;i++) {
			  if(sorted_arr[i-1]!=sorted_arr[i])
				  list.add(sorted_arr[i]);
			 
		 }
		 Map<Integer, Integer> ht = new HashMap<Integer, Integer>();
 
		 for(int i=0;i<list.size();i++) {
			 ht.put(list.get(i), i);
		 }
		 
		 StringBuilder sb=new StringBuilder();
		 for(int i=0;i<n;i++) {
			 
			 sb.append(ht.get(arr[i])+" ");
		 }
		 System.out.println(sb);
 
	}
}

단계별로 풀기 정렬 파트 완료! (งᐖ)ว

반응형