System.out.prinln() 대신
bw.write(); 를 사용한다
flush
close 해줄것
import java.io.*;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException {
// ISC - L1
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter printer = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
// ISC - L2
String[] str = br.readLine().split(" ");
int[] A = new int[N];
for (int i = 0; i < N; i++) {
A[i] = Integer.parseInt(str[i]);
}
int[] marker = new int[N];
Stack<Integer> myStack = new Stack<>();
// Operaitng Stacking in-out + marking
myStack.push(0);
for (int i = 1; i < N; i++) {
while (!myStack.isEmpty() && A[myStack.peek()] < A[i]) {
marker[myStack.peek()] = A[i];
}
myStack.push(i);
}
while (!myStack.isEmpty()) {
marker[myStack.pop()] = -1;
}
// OEC
for (int i = 0; i < N; i++) {
printer.write(marker[i] + " ");
}
printer.write("\n");
printer.flush();
}
}
'코테 기초' 카테고리의 다른 글
DFS와 stack 등에서 인식 공간 (0) | 2022.12.06 |
---|---|
Stack & Queue(+ Deque) (0) | 2022.12.06 |
NumberformatException (0) | 2022.12.06 |
static 사용 (0) | 2022.12.06 |
Deque 사용 (0) | 2022.12.05 |