[프그] > 스택/큐 > 기능개발

yozzum·2022년 4월 3일
0

내가짠코드

  • 각 작업의 남은 기간(일)을 계산해서 넣었습니다.
  • 만약 직전 작업의 남은 기간(일)이 더 긴 경우, 현재 작업의 남은 기간을 덮어씌웁니다.
  • Counter를 활용해서 unique distinct 를 리스트에 담아 return 합니다.
import math
from collections import Counter

def solution(progresses, speeds):
    answer = []
    for i in range(len(progresses)):
        progresses[i] = 100 - progresses[i] # 남은 작업량
        answer.append(math.ceil(progresses[i] / speeds[i])) # 올림 처리를 통한 배포까지 걸리는 일 수
    
    for i in range(1, len(answer)):
        if answer[i-1] > answer[i]: # 앞에 위치한 작업이 더 오래 걸린다면, 
            answer[i] = answer[i-1] # 뒤에 위치한 작업이 앞에 있는 것과 함께 배포되도록 남은 일수를 덮어씌우기

    answer = list(Counter(answer).values()) # 남은 작업일수 오름차순으로 배포 개수 계산  

    return answer
profile
yozzum

0개의 댓글