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

해결 방법

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 시켜준다.

좋은 웹페이지 즐겨찾기