[programmers] 기능개발

KwonSC·2022년 5월 8일
0

programmers - Python

목록 보기
5/23
post-thumbnail

https://programmers.co.kr/learn/courses/30/lessons/42586


Code

import math

def solution(progresses, speeds):
    answer = []
    remain = []
    prev = 0
    cnt = 1
    for i, (p, s) in enumerate(zip(progresses, speeds)):
        remain = math.ceil((100 - p) / s)
        if (i == 0):
            prev = remain
        else:
            if (prev >= remain):
                cnt += 1
            else:
                answer.append(cnt)
                cnt = 1
                prev = remain
    answer.append(cnt)
    return answer

Solution

for문을 돌면서 remain(현재 작업이 몇 일뒤에 끝나게 될지)을 계산하고, i가 0 이상이면 prev와 현재 remain을 비교해 prev가 크거나 같으면 cnt += 1, 작으면 answercnt를 넣고 다시 prevremain으로 초기화한다. 가장 마지막 원소는 비교를 하지않기 때문에 남은 cntanswer에 넣고 리턴

0개의 댓글