ISTP의 간단명료 블로그

[프로그래머스] 기능개발 / 조건이 자연수인 경우 반영하기! 본문

풀다

[프로그래머스] 기능개발 / 조건이 자연수인 경우 반영하기!

djwis 2023. 6. 13. 23:04

문제

풀이

import math
def solution(progresses, speeds):
    answer = []
    cnt = 0
    n=math.ceil((100-progresses[0])/speeds[0])
    
    for i in range(len(progresses)):
        if progresses[i]+speeds[i]*n >= 100:
            cnt += 1
        else:
            answer.append(cnt)
            n = math.ceil((100-progresses[i])/speeds[i])
            cnt = 1
            
    answer.append(cnt)
    return answer

다른사람 풀이

from math import ceil

def solution(progresses, speeds):
    daysLeft = list(map(lambda x: (ceil((100 - progresses[x]) / speeds[x])), range(len(progresses))))
    count = 1
    retList = []

    for i in range(len(daysLeft)):
        try:
            if daysLeft[i] < daysLeft[i + 1]:
                retList.append(count)
                count = 1
            else:
                daysLeft[i + 1] = daysLeft[i]
                count += 1
        except IndexError:
            retList.append(count)

    return retList

느낀점

  • 테스트 케이스 2번이 안 풀렸었는데 n(배포일자)가 자연수라는 것을 간과해서였다.
    • 남은 작업량 / 작업속도 👉 2.5일인 경우 3일째에 배포하므로 math.ceil로 값을 올림해야 함