https://www.acmicpc.net/problem/18870
18870번: 좌표 압축
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌
www.acmicpc.net
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
List<Integer> list = new ArrayList<>();
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < N; i++) {
list.add(Integer.parseInt(st.nextToken()));
}
List<Integer> distinctList = list.stream().distinct().collect(Collectors.toList());
Collections.sort(distinctList);
HashMap<Integer, Integer> map = new HashMap<>();
int cnt = 0;
for (int i = 0; i < distinctList.size(); i++) {
map.put(distinctList.get(i), cnt++);
}
for (int i = 0; i < N; i++) {
sb.append(map.get(list.get(i))).append(" ");
}
System.out.print(sb);
}
}
'OJ' 카테고리의 다른 글
[BOJ] 9375 패션왕 신해빈 (JAVA) (0) | 2023.08.06 |
---|---|
[BOJ] 1107 리모컨 (JAVA) (0) | 2023.08.05 |
[BOJ] 2630 색종이 만들기 (JAVA) (0) | 2023.08.03 |
[BOJ] 2869 달팽이는 올라가고 싶다 (JAVA) (0) | 2023.08.02 |
[BOJ] 2231 분해합 (JAVA) (0) | 2023.08.01 |