🔸 문제접근방식
- progresses, speeds를 큐에 넣는다.
- progresses의 0번째 값이 100이상이면 꺼낸다.
- speeds도 progress 꺼낼 때 0번째부터 함께 꺼낸다.
- 1일마다 speeds만큼 progresses를 더한다.
- progresses 원소를 모두 꺼낼 때까지 2-3을 반복한다.
💧 Source Code
from collections import deque
def solution(progresses, speeds):
''' https://programmers.co.kr/learn/courses/30/lessons/42586
Notes:
1. progresses를 큐에 넣고 100이상이면 꺼낸다.
2. 1일마다 speeds만큼 progresses를 더한다.
3. 하루마다 1,2번을 반복한다.
Args:
progresses (list): 프로세스 진행도(int)를 담은 리스트
speeds (list): 프로세스 효율(int)을 담은 리스트
Returns:
answer (list): 배포버전마다 완성된 프로세스 수를 담은 리스트
'''
answer = []
progresses = deque(progresses)
speeds = deque(speeds)
while progresses:
cnt = 0
while progresses and progresses[0] >= 100:
progresses.popleft()
speeds.popleft()
cnt += 1
if cnt:
answer.append(cnt)
for i, speed in enumerate(speeds):
progresses[i] += speed
return answer
progresses = [93, 30, 55]
speeds = [1, 30, 5]
print(solution(progresses, speeds))
'알고리즘' 카테고리의 다른 글
프로그래머스 해시 - 완주하지 못한 선수 (0) | 2021.06.27 |
---|---|
프로그래머스 스택큐 - 다리를 지나는 트럭 (0) | 2021.06.26 |
프로그래머스 - 프린터(스택,큐) (0) | 2021.06.24 |
프로그래머스 - 구명보트 (Greedy) (0) | 2021.06.23 |
프로그래머스 - 큰 수 만들기(Greedy) (0) | 2021.06.22 |