프로그래머스 뒤에 있는 큰 수 찾기 (Java, 자바)

jonghyukLee·2023년 5월 12일
0

이번에 풀어본 문제는
프로그래머스 뒤에 있는 큰 수 찾기
입니다.

📕 문제 링크

❗️코드

import java.util.*;
class Solution {
    public int[] solution(int[] numbers) {
        Stack<Integer> stk = new Stack<>();
        int size = numbers.length;
        int [] answer = new int[size];

        stk.push(0);
        for (int i = 1; i < size; i++) {
            while (!stk.isEmpty() && numbers[stk.peek()] < numbers[i]) {
                answer[stk.pop()] = numbers[i];
            }

            stk.push(i);
        }

        while (!stk.isEmpty()) answer[stk.pop()] = -1;

        return answer;
    }
}

📝 풀이

answer 배열에 가장 먼저 마주치는 자신보다 큰 값을 담아야 하므로, 0번 인덱스부터 순차적으로 탐색하며 answer 배열의 인덱스가 될 값을 스택에 담은 후, 나보다 큰 수가 등장했을 때 pop해주면 해결할 수 있습니다.

profile
머무르지 않기!

0개의 댓글