- 문제 : 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
'프로그래머스 > Level 2' 카테고리의 다른 글
[완전탐색 / 프로그래머스] 84512번 : 모음사전 (0) | 2022.09.26 |
---|---|
[완전탐색 / 프로그래머스] 87946번 : 피로도(다시) (0) | 2022.09.23 |
[ 스택,큐 / 프로그래머스] 42587번 : 프린터 (0) | 2022.09.19 |
[해시 / 프로그래머스] 42577번: 전화번호 목록 (0) | 2022.09.19 |
[해시 / 프로그래머스] 42578번 : 위장 (0) | 2022.09.15 |