LEVEL2/기능개발
문제 설명
전체 코드
def solution(progresses, speeds):
answer = []
time = 0
count = 0
while len(progresses)> 0:
if (progresses[0] + time*speeds[0]) >= 100:
progresses.pop(0)
speeds.pop(0)
count += 1
else:
if count > 0:
answer.append(count)
count = 0
time += 1
answer.append(count)
return answer
해결 방법
def solution(progresses, speeds):
answer = []
time = 0
count = 0
while len(progresses)> 0:
if (progresses[0] + time*speeds[0]) >= 100:
progresses.pop(0)
speeds.pop(0)
count += 1
else:
if count > 0:
answer.append(count)
count = 0
time += 1
answer.append(count)
return answer
progresses 가 0이 아닐때까지 while 반복문을 사용해준다. 이때 (progresses[0] + time* speeds[0]) >= 100 를 만족하면 큐의 개념인 FIFO대로 progresses의 0번째 인덱스와 speeds의 0번째 인덱스를 pop해주고 count 에 +1을 해준다. 만약 앞의 조건을 만족하지 못했을때 count가 0보다 크다는 것은 앞의 작업이 100 이상이 되었다는 것이므로 누적된 count를 answer 리스트에 append시켜주고 count를 초기화 시켜준다. 그리고 작업이 100이상이 된것이 있던 없던 시간은 계속 변하므로 time 에 +1을 시켜준다. 마지막으로 남은 count는 answer에 append 시켜준다.
Author And Source
이 문제에 관하여(LEVEL2/기능개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@bbkyoo/LEVEL2기능개발저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)