알고리즘/문제풀이

[Python] Programmers 기능개발

정찡이 2021. 9. 28. 13:30
728x90

1. 문제 링크

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

 

코딩테스트 연습 - 기능개발

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는

programmers.co.kr


2. 문제 요약

각 배포마다 몇 개의 기능이 배포되는지 반환합니다.


3. 아이디어 정리

  1. 덱을 이용하여 걸리는 작업일을 넣어줍니다.
  2. 현재 값이 이전 작업보다 작거나 같은 경우 앞 작업 배포 수에 + 1 합니다.
  3. 아닌 경우는 배포 시기가 다른 경우라서 1을 뒤에 추가해줍니다.

4. 문제 풀이

4-1. 내 풀이

from collections import deque
import math

def solution(progresses, speeds):
    answer = list()
    dq = deque([math.ceil((100 - p) / s) for p, s in zip(progresses, speeds)])
    temp = -1
    while dq:
        now = dq.popleft()
        if now <= temp:
            answer[-1] += 1
        else:
            answer.append(1)
            temp = now
    return answer

 


5. 결론

  • 덱 사용 문제