dev.Log
17298 스택 본문
package acmicpc;
import java.io.*;
import java.util.Stack;
public class P17298 {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
int[] A = new int[n]; //수열 배열
int[] ans = new int[n]; //정답 배열
String[] str = bf.readLine().split(" ");
for(int i=0; i<n ; i++) {
A[i] = Integer.parseInt(str[i]);
}
Stack<Integer> myStack = new Stack<>();
myStack.push(0);
for(int i=1; i<n; i++) {
while(!myStack.isEmpty() && A[myStack.peek()] < A[i]) {
ans[myStack.pop()] = A[i];
}
myStack.push(i);
} //for
//반복문을 다 돌고 나왔는데 스택이 비어있지 않다면 빌때까지
while(!myStack.empty()) {
//스택에 쌓인 index에 -1을 넣고
ans[myStack.pop()] = -1;
}
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
for(int i=0; i<n; i++) {
bw.write(ans[i] + " ");
}
bw.write("\n");
bw.flush();
}
}
'알고리즘' 카테고리의 다른 글
11286 우선순위큐에 우선순위 적용하기 (0) | 2022.09.13 |
---|---|
2164 큐 (0) | 2022.09.13 |
스택 P1874 (0) | 2022.09.12 |
Deque<Node> deque = new LinkedList<>(); (0) | 2022.09.12 |
1253 투포인터 (0) | 2022.09.08 |
Comments