0. 문제
1. 문제 이해
2. 제출
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class BOJ2493 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int[] map = new int[N+1];
int[] ret = new int[N+1];
st = new StringTokenizer(br.readLine());
for(int i=1; i<=N; i++) {
map[i] = Integer.parseInt(st.nextToken());
}
Stack<Integer> stk = new Stack<>();
for(int i=N; i>0; i--) {
while(!stk.isEmpty()) {
if(map[i] < map[stk.peek()]) break;
ret[stk.pop()] = i;
}
stk.push(i);
}
StringBuffer sb = new StringBuffer();
for(int i=1; i<=N; i++) {
sb.append(ret[i]).append(" ");
}
System.out.println(sb.toString());
br.close();
}
}
Code language: JavaScript (javascript)