문제)
https://school.programmers.co.kr/learn/courses/30/lessons/42586
입력
progresses = [93, 30, 55] , speeds = [1,30,5]
출력
[2,1]
풀이)
문제이해
첫 번째 기능은 93% 가 완료되어 있고 하루에 1%씩 작업이 가능하므로 7일간 작업 후 배포가 가능하다.
두 번째 기능은 30% 가 완료되어 있고 하루에 30% 씩 작업이 가능하므로 3일간 작업 후 배포가 가능하다.
하지만 이전 첫 번째 기능이 아직 완성된 상태가 아니기 때문에 첫 번째 기능이 배포되는 7일째 배포된다.
세 번째 기능은 55% 가 완료되어 있고 하루에 5%씩 작업이 가능하므로 9일간 작업 후 배포가 가능하다.
따라서 7일째 2개의 기능, 9일째 1개의 기능이 배포되므로 [2,1]이 출력된다.
def solution(progresses , speeds) :
answer = []
count = 0
time = 0
while len(progresses) > 0 :
if progresses[0] + speeds[0] * time >= 100 :
progresses.pop(0)
speeds.pop(0)
count+=1
else :
if count > 0 :
answer.append(count)
count = 0
time +=1
answer.append(count)
return answer
'코딩테스트 (Coding Test)' 카테고리의 다른 글
[LeetCode] - 일일온도(파이썬) (0) | 2023.11.15 |
---|---|
[LeetCode] - 유효한 괄호 (0) | 2023.11.15 |
[LeetCode] - 자신을 제외한 배열의 곱 (1) | 2023.11.15 |
[LeetCode] - 주식을 사고팔기 가장 좋은 시점 (0) | 2023.11.14 |
[LeetCode] - 배열 파티션 I (0) | 2023.11.14 |