반응형
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.*;
import java.util.Map.Entry;
public class CoordinateCompression_18870_me {
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
Integer N = sc.nextInt();
Integer [] arr = new Integer[N];
Map<Integer, Integer> orderedMap = new HashMap<>();
for (int i=0; i<N; i++){
arr[i] = sc.nextInt();
}
Integer [] sortedArr = arr.clone();
Arrays.sort(sortedArr);
Integer cnt = 0;
for(int num : sortedArr){
if (!orderedMap.containsKey(num)){
orderedMap.put(num, cnt++);
}
};
StringBuilder sb = new StringBuilder();
// 하나씩 출력하다가 StringBuiler 객체에 넣어서 한번에 출력하니까 성공뜸
for(int num : arr){
sb.append(orderedMap.get(num)).append(' ');
}
System.out.println(sb.toString());
}
}
반응형
'Programming > Coding Test' 카테고리의 다른 글
피보나치 O(logN)으로 풀이 방법 (0) | 2022.05.29 |
---|---|
백트래킹 알고리즘, 백준 14889 스타트와 링크 (0) | 2021.12.03 |
백트래킹 알고리즘, 백준 2580 스도쿠 (0) | 2021.12.02 |
[알고리즘 정리] 벨만포드, 플로이드와샬 알고리즘 (0) | 2021.05.13 |
[알고리즘 정리] 다익스트라 알고리즘 (0) | 2021.05.10 |