Hi, There!
안녕하세요, 바오밥입니다.
목차
- 문제
- 풀이
문제
문제 내용
https://school.programmers.co.kr/learn/courses/30/lessons/42584?language=java
풀이
나의 풀이
- 다른 사람의 풀이를 참고하여 풀이했다.
- for문의 i=(prices.length-que.size())를 도출한 점이 인상 깊었다. 앞으로 반복문의 시작점도 문제 풀이의 중요한 키가 될 수 있다는 것을 기억해야겠다.
- 주식 가격을 큐에 전부 넣은 뒤 큐를 순회한다.
- 큐에 맨 앞에 있는 날짜를 cur 변수로 담은 뒤 주식 가격 배열과 비교 순회한다.
- 비교 순회 시 고려해야 될 경우의 수는 두 가지이다.
1) cur 보다 익일 주식 가격이 더 높은 경우
2) cur 보다 익일 주식 가격이 더 낮거나 같은 경우
- answer 배열을 만들어 각 날짜에 대한 누적 값을 저장하는 곳으로 사용한다.
import java.util.*;
class Solution {
public int[] solution(int[] prices) {
Queue<Integer> que = new LinkedList<>();
int[] answer = new int[prices.length];
int idx = 0;
for(int i : prices) que.offer(i);
while(!que.isEmpty()) {
int cur = que.poll();
for(int i=(prices.length-que.size()); i<prices.length; i++) {
if(cur <= prices[i]) {
answer[idx]++;
} else {
answer[idx]++;
break;
}
}
idx++;
}
return answer;
}
}
'Dev > PS' 카테고리의 다른 글
[프로그래머스-코딩테스트 연습] 디스크 컨트롤러 (0) | 2023.12.07 |
---|---|
[프로그래머스-코딩테스트 연습] 더 맵게 (2) | 2023.12.05 |
[프로그래머스-코딩테스트 연습] 다리를 지나는 트럭 (1) | 2023.12.05 |
[프로그래머스-코딩테스트 연습] 프로세스 (0) | 2023.12.05 |
[프로그래머스-코딩테스트 연습] 올바른 괄호 (0) | 2023.12.05 |