프로그래머스 – 뒤에 있는 큰 수 찾기 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; } }
답글 남기기