프로그래머스 – 뒤에 있는 큰 수 찾기 Java 풀이에 대해 알아보겠습니다. 전 개인적으로 이런 문제 어렵다고 생각합니다 ㅋㅋ
뒤에 있는 큰 수 찾기 경로
코딩테스트 연습 > 연습문제 > 뒤에 있는 큰 수 찾기
문제 설명 및 제한사항

공원 산책 Java 풀이
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;
}
}
결과

답글 남기기