프로그래머스__[문제풀이: lv2. 기능개발]

Jaewon Lee·2021년 8월 5일
0

Algorithm

목록 보기
16/36
post-thumbnail

On.


Algorithm


1. 수도코드

1) 각각의 progress를 speed와 함께 계산해서 배포에 걸리는 시간을 계산하고, deploy라는 리스트로 할당한다.

2) deploy 리스트를 순회한다.

3-1) deploy의 원소가 max_deploy보다 크면 max_deploy값에 원소 값을 할당하고, [원소 값]을 answer 리스트에 추가한다.

3-2) deploy의 원소가 max_deploy보다 작으면 answer 리스트에서 pop한 값과 [원소 값]을 합쳐서, 다시 answer 리스트에 추가한다.

2. 구현코드

import math

def solution(progresses, speeds):
    answer = []
    deploy = [math.ceil((100 - progress) / speed) for progress, speed in zip(progresses, speeds)]
    max_deploy = 0
    
    for i in deploy:
        if max_deploy < i:
            max_deploy = i
            answer.append([i])
        else:
            answer.append(answer.pop() + [i])
    
    return list(map(len, answer))

Off.


프론트와 백을 넘나드는 리드 개발자가 되는 그날까지 🔥🔥🔥

profile
Communication : any

0개의 댓글