[프로그래머스] 기능개발 - python

코린이·2022년 6월 1일
0

프로그래머스

목록 보기
10/22

📢"기능개발" 문제

프로그래머스 문제 링크

🔎풀이

사용 언어 : python
time : 배포 가능한 날, ceil을 하여 결과가 소수점일때 ceil을 이용하여 올림을 해줍니다! ( 남은 부분은 내일 개발해야 하므로 하루를 더해줌 )
t : 각 프로세스마다 배포 가능한 날짜를 저장해 놓은 list입니다.
answer : 각 배포마다 몇 개의 기능이 배포되는지 저장되는 list입니다.

z는 배포할 첫번째 기능의 배포가능할 날입니다.
z값과 비교하여 z보다 작거나 같을 시 그날 배포 가능합니다.
배포가능하면 t의 첫번째 값을 삭제해주고 count 값을 +1해줍니다.
배포가 가능하지 않다면 break를 한 후 answer에 count값을 추가합니다.

t의 모든 요소가 삭제될 때까지 반복

🔎코드

import math

def solution(progresses, speeds):
    t = []
    for x, y in zip(progresses, speeds):
        time = math.ceil((100-x) / y) # 소수점은 남은 개발을 의미, 그 다음날 개발이 끝나므로 올림을 해준다.
        t.append(time)
    answer = []
    while t:
        count = 0
        z = t[0]
        for _ in range(len(t)):
            if z >= t[0]:
                count += 1
                del t[0] # 배포가능하면 배포했다는 의미로 삭제!
            else:
                break
        answer.append(count) # 추가!

    return(answer)
profile
초보 개발자

0개의 댓글