728x90
<문제 설명>
https://programmers.co.kr/learn/courses/30/lessons/42586
기능은 100%가 되어야 서비스에 반영할 수 있고, 기능마다 개발 속도는 다르다. 만약 뒤에 있는 기능이 앞의 기능 보다 먼저 개발된다면 앞기능이 배포될 때 함께 배포된다.
각 배포마다 몇개의 기능이 배포되는지를 반환하면 된다.
입출력의 예는 다음과 같다.
progresses | speeds | return |
[93, 30, 55] | [1, 30, 5] | [2, 1] |
[95, 90, 99, 99, 80, 99] | [1, 1, 1, 1, 1, 1] | [1, 3, 2] |
<문제 풀이 아이디어>
큐에 현재 작업 진도와 속도를 반영해서 남은 일자를 저장한다.
이후 앞의 일자가 뒤의 일자보다 느리면 임시로 1을 더해줌으로서 앞 기능이 배포될때 같이 배포될 수 있도록 한다.
이렇게 뒤의 일자를 모두 비교한 후에 몇 개를 한번에 배포해야 하는지를 answer에 append 해서 리턴한다.
<문제 풀이 코드>
import math
def solution(progresses, speeds):
answer = []
queue = []
for i in range(len(progresses)):
value = math.ceil((100-progresses[i])/speeds[i])
queue.append(value)
print(value)
start = queue[0]
tmp = 0
for i in range(len(progresses)):
if(queue[i]<=start):
tmp += 1
else:
answer.append(tmp)
start = queue[i]
tmp = 1
answer.append(tmp)
return answer
728x90
반응형
'알고리즘' 카테고리의 다른 글
[자료구조] 완전탐색, 이분탐색 (0) | 2022.02.15 |
---|---|
[프로그래머스 lv 2] 다리를 지나는 트럭.py (0) | 2022.02.11 |
[프로그래머스 lv 2] 주식가격.py (0) | 2022.02.10 |
[자료구조] 스택, 큐 (0) | 2022.02.09 |
[프로그래머스 lv 1] 모의고사.py (0) | 2022.02.08 |