반응형
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);
}
}
단계별로 풀기 정렬 파트 완료! (งᐖ)ว
반응형
댓글