728x90
1. 문제
2. 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class BOJ_2493_탑 {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(in.readLine());
StringTokenizer st = new StringTokenizer(in.readLine());
int[] top = new int[N];
for (int i = 0; i < N; i++) {
top[i] = Integer.parseInt(st.nextToken());
}
StringBuilder sb = new StringBuilder();
//탐색
Stack<Integer> stack = new Stack<>();
for (int i = 0; i < N; i++) {
while (!stack.isEmpty() && top[stack.peek()] < top[i]) {
stack.pop();
}
if (stack.isEmpty()) sb.append("0 ");
else sb.append(stack.peek() + 1).append(" ");
stack.push(i);
}
//출력
System.out.println(sb);
}
}
2022.02.05 - [알고리즘/BOJ] - [BOJ] 17298 오큰수 - JAVA 와 비슷한 문제라 빠르게 풀었다.
오큰수와 다른 점은 이 문제에서는 인덱스를 push 했다는 것 말고 없다. 문제에서 요구하는 위치는 1부터 시작하므로 답을 출력할 때만 +1 해주었다.
3. 결과
'코딩테스트 > BOJ' 카테고리의 다른 글
[BOJ] 2605 줄세우기 - JAVA (0) | 2022.02.09 |
---|---|
[BOJ] 2309 일곱난쟁이 - JAVA (0) | 2022.02.09 |
[BOJ] 5430 AC - JAVA (0) | 2022.02.07 |
[BOJ] 1021 회전하는 큐 - JAVA (0) | 2022.02.07 |
[BOJ] 10866 덱 - JAVA (0) | 2022.02.07 |
댓글