[프로그래머스] LEVEL2 뒤에 있는 큰 수 찾기 JAVA

Pixel Dophin·2023년 8월 16일
0

프로그래머스

목록 보기
41/55

뒤에 있는 큰 수 찾기

문제링크

풀이

stack
1. stack에 순서대로 인덱스를 담는다.
2. 만약 stack에 원소가 있다면 해당 원소와 지금의 원소를 비교해서 지금의 원소가 "해당 원소보다 뒤에 있는 큰 수"라면 anwer의 해당 원소 인덱스에 지금의 원소를 남긴다.
이 과정 이후에 남은 stack의 원소에는 해당 원소 뒤에 큰 수가 없는 원소만 남는다.
3. 지금 stack에 남아 있는 원소는 각 원소의 뒤의 모든 원소에 대해 큰 수가 없는 원소들만 있으므로 -1로 표시해준다.

코드

import java.util.*;
class Solution {
    public int[] solution(int[] numbers) {
        int[] answer = new int[numbers.length];
        
        Stack<Integer> stack = new Stack<>();
        for (int i = 0; i < numbers.length; i++) {
            while(!stack.isEmpty() && numbers[stack.peek()] < numbers[i] ) {
                answer[stack.pop()] = numbers[i];
            }
            stack.push(i);
        }
        
        while(!stack.isEmpty()) {
            answer[stack.pop()] = -1;
        }
        
        return answer;
    }
}
profile
안녕 👋 성장하고픈 개발자 💻 입니다

0개의 댓글

관련 채용 정보