본문 바로가기
개발 관련 공부/알고리즘

백준 18870

by 슴새 2021. 8. 5.
반응형

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);
 
	}
}

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

반응형

'개발 관련 공부 > 알고리즘' 카테고리의 다른 글

백준 1260  (0) 2021.08.09
백준 9184  (0) 2021.08.06
백준 2108  (0) 2021.08.04
백준 11652  (0) 2021.08.03
백준 10989  (0) 2021.08.02

댓글