import java.util.*;
class Solution {
public int[] solution(int[] prices) {
int[] answer = new int[prices.length];
Stack<Integer> stack = new Stack<>();
for(int i=0; i<prices.length; i++) {
while(!stack.isEmpty() && prices[stack.peek()]>prices[i]) {
int index = stack.peek();
answer[index] = i-index;
stack.pop();
}
stack.push(i);
}
while(!stack.isEmpty()) {
int index = stack.peek();
answer[index] = prices.length-1-index;
stack.pop();
}
return answer;
}
}
'Problem Solving > Programmers' 카테고리의 다른 글
[Level 2] 교점에 별 만들기 (0) | 2022.04.06 |
---|---|
[Level 2] 구명보트 (0) | 2022.04.06 |
[Level 2] 영어 끝말잇기 (0) | 2022.04.06 |
[Level 2] 삼각 달팽이 (0) | 2022.04.06 |
[Level 2] 2개 이하로 다른 비트 (0) | 2022.04.06 |