[프로그래머스] 스택/큐 - 기능개발 (Python)

구미·2021년 5월 7일
0

알고리즘

목록 보기
4/25

제출한 코드

import math

days = []

def solution(progresses, speeds):
    answer = []
    
    for i in range(len(progresses)):
        days.append(math.ceil((100 - progresses[i]) / speeds[i]))

    # 작업 순서대로 걸리는 날짜를 확인하며 배포 날짜 정하기  
    # 첫 배포 날짜는 첫 작업이 완료되는 시점이므로 두 번째 작업부터 반복문 돌기 시작
    deploy = days[0]
    count = 1

    for j in range(1, len(days)):
        # 만약 뒤에 있는 작업이 현재 정해진 배포 날짜보다 빨리 끝난다면 해당 배포일에 같이 배포
        if days[j] <= deploy:
            count += 1
        # 뒤에 있는 작업이 정해진 배포일보다 더 오래 걸리는 경우
        else:
            # 더 오래 걸리는 작업일이 배포일이 되고 배포할 작업 개수 기록한 후 count 리셋
            deploy = days[j]
            answer.append(count)
            count = 1
    #반복문 다 돌면 마지막까지 센 count 를 result 에 append 하고 리턴
    answer.append(count)
    
    return answer

처음에 첫 번째 테스트 케이스에서 오류가 나길래 replit에서 리스트를 프린트하면서 수정했다.
괄호, /// 구분해서 사용, ceil 을 사용해서 수정했다.


문제 출처
https://programmers.co.kr/learn/courses/30/lessons/42586

profile
디지털 노마드를 꿈꾸며! 🦄 🌈

0개의 댓글