본문 바로가기
> 알고리즘 문제 풀이/프로그래머스

20/09 - 기능개발

by bky373 2020. 9. 21.
def solution(progresses, speeds):
    answer = []
    days = [0] * len(progresses)
 
    for x in range(len(progresses)):
        days[x] = (100 - progresses[x]) / speeds[x]
        if  (100 - progresses[x]) % speeds[x] != 0:
            days[x] += 1
 
    while len(days) >= 2:
        day = days.pop(0)
        completed = 1
        if day >= days[0]:
            while len(days) >= 1 and day >= days[0]: 
                days.pop(0)
                completed += 1
        answer.append(completed)
        if len(days) == 1:
            answer.append(1)
 
    return answer
 
answer = solution([93, 30, 55],    [1, 30, 5])
print(answer)
 
"""
[2, 1]
"""

"""
<핵심 로직>
 
남은 날 = (100 - 작업진도) / 작업속도
    if (100 - 작업진도) % 작업속도 != 0
        위의 남은 일수 + 1
 
현재 완료 개수 +1
현재 작업의 남은 날 >= 다음 작업 남은 날
    현재 작업 남은 날보다 크거나 같은 값이 나올 때까지 이동
        완료 개수 +1 씩 증가
    정답에 완료 개수 더하기 
    남은 작업이 1개일 때 완료 개수 +1 더하기
 
"""
​

 

- 문제 출처 : programmers.co.kr/learn/courses/30/lessons/42586

'> 알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글

lv1-체육복 (python, 파이썬)  (0) 2020.10.19
lv1-완주하지 못한 선수  (0) 2020.10.18
20/09- 프린터  (0) 2020.09.29
20/09- 다리를 지나는 트럭  (0) 2020.09.28
20/09 - 주식가격  (0) 2020.09.20

댓글