import java.util.Stack;
public class Solution {
// 주식가격
public static int[] solution(int[] prices) {
int[] answer = new int[prices.length];
Stack<Integer[]> stack = new Stack<>();
for (int i = 0; i < prices.length; i++) {
answer[i] = prices.length - 1 - i; // 최대 시간으로 세팅 // 4, 3, 2, 1, 0
Integer[] tempArr = {i, prices[i]}; // 0, 1 // 1, 2 // 2, 3 // 3, 2 // 4, 3
while (!stack.isEmpty() && stack.peek()[1] > prices[i]) { // 가격이 떨어졌다면
Integer[] price = stack.pop();
answer[price[0]] = i - price[0];
}
stack.push(tempArr);
}
return answer;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] prices = {1, 2, 3, 2, 3}; // 4, 3, 1, 1, 0
System.out.println(solution(prices));
}
}

프로그래머스 주식가격 문제 풀이 Java
'Java > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 [Level-3] 보석 쇼핑 (0) | 2022.11.29 |
---|---|
[Java] 프로그래머스 [Level-1] 햄버거 만들기 (0) | 2022.11.28 |
[Java] 프로그래머스 [Level-3] 여행경로 (0) | 2022.11.28 |
[Java] 프로그래머스 [Level-2] [1차] 캐시 (0) | 2022.11.28 |
[Java] 프로그래머스 [Level-3] 자물쇠와 열쇠 (1) | 2022.11.28 |