📌 문제
https://programmers.co.kr/learn/courses/30/lessons/42584
📌 코드
package programmers;
import java.util.Arrays;
import java.util.Stack;
public class Pro_220609 {
public static void main(String[] args) {
// 도움 코드
int[] prices = {1, 2, 3, 2, 3};
System.out.println(Arrays.toString(solution(prices)));
System.out.println(Arrays.toString(solution1(prices)));
}
public static int[] solution(int[] price) { // 이중 for 문 활용
int[] answer = new int[price.length];
for (int i = 0; i < price.length; i++) {
for (int j = i + 1; j < price.length; j++) {
answer[i]++;
if (price[i] > price[j]) {
break;
}
}
}
return answer;
}
public static int[] solution1(int[] price) { // stack 활용
int[] answer1 = new int[price.length];
Stack<Integer> stack = new Stack<>();
for (int i = 0; i < price.length; i++) {
while (!stack.isEmpty() && price[i] < price[stack.peek()]) {
answer1[stack.peek()] = i - stack.peek();
stack.pop();
}
stack.push(i);
}
while (!stack.isEmpty()) {
answer1[stack.peek()] = price.length - stack.peek() - 1;
stack.pop();
}
return answer1;
}
}
'Programmers' 카테고리의 다른 글
[Java] 프로그래머스 : 모의고사 (0) | 2022.07.06 |
---|---|
[Java] 프로그래머스 : 두개 뽑아서 더하기 (0) | 2022.07.01 |
[Java] 프로그래머스 : K번째 수 (0) | 2022.06.03 |
[Java] 프로그래머스 : 약수의 개수와 덧셈 (0) | 2022.05.30 |
[Java] 프로그래머스 : 예산 (0) | 2022.05.27 |