java
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
int[] answer = new int[numbers.length];
Arrays.fill(answer, -1);
Stack<Integer> s = new Stack<>();
s.push(0);
for (int now = 0 ; now < numbers.length; now++){
while (!s.isEmpty()){
int before = s.pop();
if(numbers[now] > numbers[before]){
answer[before] = numbers[now];
}else{
s.push(before);
break;
}
}
s.push(now);
}
return answer;
}
}
Python
def solution(numbers):
stack = []
answer = [-1 for i in range(len(numbers))]
for i in range(len(numbers)):
while stack and numbers[stack[-1]] < numbers[i]:
answer[stack.pop()] = numbers[i]
stack.append(i)
return answer
'문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 달리기 경주 (파이썬/자바) (0) | 2023.04.10 |
---|---|
[프로그래머스] - 성격 유형 검사하기 (1) | 2023.04.08 |
[프로그래머스] - 추억 점수(java) (0) | 2023.03.31 |
[프로그래머스][조합] - 메뉴 리뉴얼 (0) | 2022.08.11 |
[프로그래머스] - 게임 맵 최단거리 (0) | 2022.08.09 |