반응형
<코드>
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
반응형
'🧩PS > 🥉Easy' 카테고리의 다른 글
[JAVA] 백준 11053번 - 가장 긴 증가하는 부분 수열 (0) | 2021.10.24 |
---|---|
[JAVA] 백준 9461번 - 파도반 수열 (0) | 2021.10.15 |
[JAVA] 백준 10814번 - 나이순 정렬 (0) | 2021.10.07 |
[JAVA] 백준 11651번 - 좌표 정렬하기 2 (0) | 2021.10.07 |
[JAVA] 백준 11650번 - 좌표 정렬하기 (0) | 2021.10.07 |