728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42584
728x90
메모리: 77.3 MB, 시간: 29.81 ms
사용 알고리즘: 스택
import java.util.*;
class Solution {
public int[] solution(int[] prices) {
int[] answer = new int[prices.length];
// {prices, index}
Deque<int[]> stack = new ArrayDeque<>();
int[] tmp;
for(int i = 0; i < prices.length; i++) {
while(!stack.isEmpty() && stack.peekLast()[0] > prices[i]) { // 가격이 떨어진 경우
tmp = stack.pollLast();
answer[tmp[1]] = i - tmp[1];
}
stack.offerLast(new int[] {prices[i], i});
}
while(!stack.isEmpty()) {
tmp = stack.pollLast();
answer[tmp[1]] = prices.length - 1 - tmp[1];
}
return answer;
}
}
728x90
'Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스, 298515] 잡은 물고기 중 가장 큰 물고기의 길이 구하기 (mysql) (1) | 2024.10.18 |
---|---|
[프로그래머스, 42577] 전화번호 목록 (java) (0) | 2024.10.17 |
[프로그래머스, 293258] 잔챙이 잡은 수 구하기 (mysql) (0) | 2024.10.17 |
[프로그래머스, 59042] 없어진 기록 찾기 (mysql) (0) | 2024.10.16 |
[프로그래머스, 293257] 물고기 종류 별 잡은 수 구하기 (mysql) (0) | 2024.10.16 |