프로그래머스/Level 2
[스택,큐 / 프로그래머스] 42584번 : 주식가격
ydin
2022. 9. 20. 18:00
- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42584
Lv2. 문제이고, 스스로 푼 문제다!
i번째 인덱스 이상인 수가 i + 1 ~ n -1 인덱스 사이에 총 몇 개 인지 세는 문제이다
문제 이해
시간 초과를 피하기 위해 deque를 이용해서 더 빠르게 계산할 수 있도록 했다
1. prices에서 원소(x)를 하나 pop()한 다음, 나머지 prices 원소들 중에 해당 원소 미만인 수가 있는지 확인하기 위해 for문을 돌린다.
2. 예제에서 멈출 때 마저도 시간을 센다고 했으므로 time += 1을 해주고 for문을 나온다
3. x 이상인 수가 나머지 prices에 있다면 계속해서 time += 1을 해준다
4. x에 해당하는 time을 answer에 추가해 준 후 반환한다
- 정답 풀이 :
from collections import deque
def solution(prices):
answer = []
prices = deque(prices)
while prices:
x = prices.popleft()
time = 0
for price in prices:
if x > price:
time += 1
break
time += 1
answer.append(time)
return answer