코딩 문제 풀이/백준
[백준] 자바 문제 풀이 17298 : 골드4
코딩하는 랄로
2023. 9. 21. 11:15
반응형
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] nlist = new int[n];
StringTokenizer str = new StringTokenizer(br.readLine());
for(int i = 0; i < n; i ++) {
nlist[i] = Integer.parseInt(str.nextToken());
}
int[] nge = new int[n];
nge[n-1] = -1;
int max = nlist[n-1];
for(int j = n - 2; j >= 0; j--) {
if(nlist[j] < nlist[j+1]) {
nge[j] = nlist[j+1];
} else if(nlist[j] < nge[j+1]) {
nge[j] = nge[j+1];
} else {
nge[j] = -1;
if(nlist[j] >= max) {
max = nlist[j];
} else {
for (int k = j + 1; k < n; k++) {
if (nlist[j] < nlist[k]) {
nge[j] = nlist[k];
break;
}
}
}
}
}
StringBuilder sb = new StringBuilder();
for(int j = 0; j < n; j++){
sb.append(nge[j] + " ");
}
bw.write(sb + "\n");
bw.flush();
bw.close();
br.close();
}
}
반응형