문제 풀이
def solution(progresses, speeds):
answer = []
# 진도율을 day로 표현
day = 1;
# progresses가 빌 때까지(progresses에 값이 있다면)
while progresses:
# 완료된 작업의 개수
complete = 0
for i in range(len(progresses)):
# 하단 설명 참조
if (progresses[0] + (speeds[0] * day)) >= 100:
complete += 1
progresses.pop(0)
speeds.pop(0)
# 완료된 작업이 있다면
if complete != 0:
answer.append(complete)
# 진도율 증가
day += 1
return answer
우선 progresses와 speeds를 queue로 사용한다. [0]번 값을 비교하면서 초기 진도와 진도의 증가율을 더한 값이 100이 넘는다면 .pop(0)을 통해 그 값을 빼 준다. 이렇게 한다면 [0]번의 다음 값들이 [0]번보다 먼저 100 이상이 된다고 하더라도 pop이 되지 않기 때문에 [0]번 작업이 완료된다면 이후의 100 이상이 된 값은 for문을 통해 모두 pop이 될 수 있다.
문제 링크
programmers.co.kr/learn/courses/30/lessons/42586?language=python3
'Python > 프로그래머스' 카테고리의 다른 글
[프로그래머스] [Python] 프린터 (0) | 2020.11.27 |
---|---|
[프로그래머스] [Python] 다리를 지나는 트럭 (0) | 2020.11.26 |
[프로그래머스] [Python] 주식가격 (0) | 2020.11.19 |
[프로그래머스] [Python] 베스트앨범 (0) | 2020.11.19 |
[프로그래머스] [Python] 위장 (0) | 2020.11.19 |