[백준 17298] 오큰수 (스택)
- 💾 알고리즘/LeetCode_백준
- 2023. 5. 30. 12:52
문제
https://www.acmicpc.net/problem/17298
코드
package org.kyhslam.DoItAlgorithm.ch02;
import java.util.Arrays;
import java.util.Scanner;
import java.util.Stack;
public class p17298 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
// 4
// 3 5 2 7 > 5 7 7 -1
// 9 5 4 8 > -1 8 8 -1
int[] arr = new int[N];
int[] ans = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = sc.nextInt();
}
Stack<Integer> stack = new Stack<>();
stack.push(0);
for (int i = 1; i < N; i++) {
while (!stack.isEmpty() && arr[stack.peek()] < arr[i]) {
ans[stack.pop()] = arr[i];
}
stack.push(i);
}
System.out.println("ans = " + Arrays.toString(ans));
System.out.println("stack = " + stack);
}
}
'💾 알고리즘 > LeetCode_백준' 카테고리의 다른 글
[백준 11286] 절대값 힙 구현(우선순위 큐-중요) (0) | 2023.06.05 |
---|---|
[백준 11003] 최솟값 찾기 (슬라이딩 윈도우) (0) | 2023.05.25 |
[백준 12891] 좋은 수 구하기(슬라이딩 윈도우) (0) | 2023.05.18 |
[백준 1253] 좋은 수 구하기(투 포인터) (0) | 2023.05.18 |
[백준 1940] 주몽의 명령(투 포인터) (0) | 2023.05.18 |