🧩PS/🥉Easy
[JAVA] 백준 18870번 - 좌표 압축
Cocoon_
2021. 10. 7. 09:25
반응형
<코드>
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuffer sb = new StringBuffer();
int N = Integer.parseInt(br.readLine());
int tmp1[][] = new int[N][2]; // [좌표][순서]
int tmp2[][] = new int[N][2]; // [순서][압축결과]
int cnt = 0; // 중복 체크
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
tmp1[i][0] = Integer.parseInt(st.nextToken());
tmp1[i][1] = i;
}
Arrays.sort(tmp1, (a,b)->{
return a[0]-b[0];
});
tmp2[0][0] = tmp1[0][1];
tmp2[0][1] = 0;
for (int i = 1; i < N; i++) {
if(tmp1[i][0] == tmp1[i-1][0]) cnt++;
tmp2[i][0] = tmp1[i][1];
tmp2[i][1] = i-cnt;
}
Arrays.sort(tmp2, (a,b)->{
return a[0]-b[0];
});
for (int i = 0; i < N; i++) {
sb.append(tmp2[i][1]+" ");
}
System.out.println(sb);
}
}
https://www.acmicpc.net/problem/18870
18870번: 좌표 압축
수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌
www.acmicpc.net
반응형