반응형
package excercise;
import java.util.Arrays;
import java.util.Stack;
public class 주식가격 {
public static void main(String[] args) {
int prices[] = { 1, 2, 3, 2, 3, 2 };
System.out.println(Arrays.toString(new 주식가격().solution(prices)));
}
static class Pair {
int time;
int price;
public Pair(int time, int price) {
super();
this.time = time;
this.price = price;
}
}
public int[] solution(int[] prices) {
Stack<Pair> stack = new Stack<Pair>();
int[] answer = new int[prices.length];
stack.add(new Pair(0, prices[0]));
for (int t = 1; t < prices.length; t++) {
while (!stack.isEmpty()) {
Pair cur = stack.peek();
if (cur.price < prices[t]) {
stack.add(new Pair(t, prices[t]));
break;
} else {
stack.pop();
answer[cur.time] = t - cur.time;
}
}
}
while (!stack.isEmpty()) {
Pair cur = stack.pop();
answer[cur.time] = prices.length - 1 - cur.time;
}
return answer;
}
}
반응형
'ProgramSoliving' 카테고리의 다른 글
프로그래머스 : 다리를 지나는 트럭 (0) | 2020.12.12 |
---|---|
프로그래머스 : 기능개발 (0) | 2020.12.12 |
프로그래머스 : 베스트앨범 (0) | 2020.12.11 |
프로그래머스 : 위장 (0) | 2020.12.11 |
프로그래머스 : 전화번호목록 (0) | 2020.12.11 |