파게로그

[프로그래머스 Lv.2] 기능개발 본문

콤퓨타 왕왕기초/PS

[프로그래머스 Lv.2] 기능개발

파게 2020. 12. 3. 19:55

문제 링크: 프로그래머스 Lv.2 기능개발

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

 

먼저 progresses를 배포까지 걸리는 날짜를 담고 있는 리스트로 바꾸어준다. 아직 배포되지 않은 기능들 중 가장 긴 기간을 long이라 하면, longprogresses[i]보다 크거나 같으면 후자는 전자의 개발이 완료될 때까지 기다려야 한다. 반면 longprogresses[i]보다 작으면 지금까지의 배포는 모두 완료되어야 한다.

 

def solution(progresses, speeds):
    # 배포까지 남은 날짜로 변환
    for i in range(len(progresses)):
        remainProg = 100 - progresses[i]
        remainDayMod = remainProg % speeds[i]
        remainDay = remainProg // speeds[i]

        progresses[i] = remainDay
        if remainDayMod != 0: progresses[i] += 1

    # 배열에 추가하다가 더 큰 것을 만나면 비우기
    q = []
    res = []

    q.append(progresses[0])
    for i in range(1, len(progresses)):
        if q[0] < progresses[i]:
            res.append(len(q))
            q = []
        q.append(progresses[i])

    if q:
        res.append(len(q))

    return res
Comments