Haribo ML, AI, MATH, Algorithm

기능 개발

2021-01-18
Haribo

기능개발

코드

import math
def solution(progress, speed):
    answer = []
    stack = []
    for progress_, speed_ in zip(progress, speed) :
        remain = math.ceil((100 - progress_) / speed_)
        if not stack or stack[0] >= remain :
            stack.append(remain)
        else :
            answer.append(len(stack))
            stack = [remain]
    return answer + [len(stack)]

풀이

  1. progress 별 남은 작업일을 계산해 준다.
  2. que에 가장 먼저 들어와있던 progress 와의 작업량을 비교
    1. que가 비어있거나 현재 남은 작업량이 더 작으면 que에 작업 추가
    2. 현재 progress 작업량이 que 에 가장 먼저 들어온 작업량 보다 크다면 len(que)를 저장하고 새로운 que = [remain] 정의

Similar Posts

이전 포스트 124 나라의 숫자

다음 포스트 다리를 지나는 트럭

Comments