프로그래머스 – 뒤에 있는 큰 수 찾기 Java 풀이

프로그래머스 – 뒤에 있는 큰 수 찾기 Java 풀이에 대해 알아보겠습니다. 전 개인적으로 이런 문제 어렵다고 생각합니다 ㅋㅋ



뒤에 있는 큰 수 찾기 경로

코딩테스트 연습 > 연습문제 > 뒤에 있는 큰 수 찾기

프로그래머스 - 뒤에 있는 큰 수 찾기 Java 풀이

Stack을 사용했습니다.

Stack

배열을 순회하며, 현재의 값이 이전의 값보다 큰 경우, 이전의 값에 해당하는 정답 배열에 현재의 수를 삽입하는 프로세스입니다.

1. 우선 뒷 큰 수가 존재하지 않는 값의 return값을 고려하여, answer 배열을 -1로 채워줍니다.
2. 배열의 위치(i)를 차례로 stack에 쌓아가며, numbers의 값이 차례대로 쌓인 stack의 peek 위치에 있는 배열 값보다 큰지 확인합니다.
– 여기서 peek 위치에 있는 배열 값 보다 크다면 pop하고 answer배열의 해당 위치에 현재 numbers 값을 삽입합니다.

import java.util.*;
class Solution {
    public int[] solution(int[] numbers) {
        int[] answer = new int[numbers.length];
        Arrays.fill(answer, -1);
        
        Stack<Integer> stack = new Stack<>();
        
        for(int i = 0; i < numbers.length; i++) {
            while(!stack.isEmpty() && numbers[i] > numbers[stack.peek()]) {
                answer[stack.pop()] = numbers[i];
            }
            stack.push(i);
        }
        return answer;
    }
}
프로그래머스 - 뒤에 있는 큰 수 찾기 Java 풀이



– 스택에 개념에 대해 궁금하시면 아래 게시글을 참고하세요 🙂

개발자 면접 질문 – Java

Leave a Comment