티스토리 뷰


문제 설명
- prices에는 초 단위로 기록된 주식 가격이 담겨있음.
- 각 시점에 주식 가격이 떨어지지 않은 기간을 초 단위로 계산
자료구조 선택
각 시점에서 가격이 떨어지지 않은 기간을 계산해야함.
먼저 들어온 데이터가 먼저 나가는 자료구조 큐(Queue)를 사용함
해결 과정
1. 초기화
- prices 배열을 순회하기 위해 인덱스 사용
2. 큐를 이용한 순회
- prices 배열을 순서대로 탐색
- 각 시점의 가격을 큐에 저장하고 가격 변동을 확인
- 떨어진 시점에서 큐의 가격과 비교해 계산
function solution(prices) {
const n = prices.length;
const answer = new Array(n).fill(0);
const stack = [];
for (let i = 0; i < n; i++) {
while (stack.length > 0 && prices[stack[stack.length - 1]] > prices[i]) {
const j = stack.pop();
answer[j] = i - j;
}
stack.push(i);
}
while (stack.length > 0) {
const j = stack.pop();
answer[j] = n - j - 1;
}
return answer;
}
큐를 이용해 가격이 떨어지지 않은 기간을 효율적으로 계산했다.
필요한 계산을 빠르게 수행할 수 있었다.
2단계의 문제들은 직접 자료구조를 구현하거나,
내장된 자료구조를 사용하는 것이 관건으로 판단된다.
'Oops, All Code! > 🤯 Oops, My Algorithm!' 카테고리의 다른 글
| ꒰ྀི 04. 프로그래머스:: 소수 찾기 (0) | 2024.07.16 |
|---|---|
| ꒰ྀི 03. 프로그래머스:: 구명보트 (0) | 2024.07.16 |
| ꒰ྀི 01. 프로그래머스:: 더 맵게 (0) | 2024.07.15 |
| ♡̈ 19. 프로그래머스:: 내적 (0) | 2024.07.13 |
| ♡̈ 18. 프로그래머스:: 행렬의 덧셈 (2) | 2024.07.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 우아한테크코스
- 트러블슈팅
- 안성스타필드
- 비즈플리마켓
- 네이버부스트캠프
- 소사벌맛집
- 일급객체
- 카드뉴스
- 프리코스
- 책추천
- js
- 경험플리마켓
- 서평
- 프론트엔드
- 소사벌
- 어른의어휘공부
- typescript
- 도서추천
- 카페추천
- react
- javascript
- 어휘력
- 회고
- 웹풀스택
- 대학생플리마켓
- 코딩테스트
- 도서리뷰
- 프로토타입
- 부스트캠프
- 대학생팝업스토어
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함