[프로그래머스] 기능개발

hagnoykmik·2023년 11월 15일
0

코딩테스트 연습

목록 보기
27/36
post-thumbnail

[프로그래머스] 기능개발 바로가기

아이디어

  • for문 돌면서 각자의 작업량을 더해준다.
  • 하루의 마지막에 배포하니까 작업 후에 완성된 기능을 검사한다.
  • 완성한 작업을 다 배포할 동안 while문 반복한다.
  • 배포한 작업 개수를 answer에 담는다

시간 복잡도

  • O(N^2)

코드

from collections import deque

def solution(progresses, speeds):
    answer = []
    progresses = deque(progresses)
    speeds = deque(speeds)
    
    while progresses:
        complete = 0
        # 작업
        for i in range(len(progresses)):
            progresses[i] += speeds[i]
            
        # 작업 완료된거 빼기 => 이때 작업속도도 같이 제거해줘야한다.
        while progresses and progresses[0] >= 100:
        	# deque을 사용해서 시간복잡도를 O(1)로 줄임
            progresses.popleft()
            speeds.popleft()
            complete += 1
        
        if complete != 0:
            answer.append(complete)
    
    return answer
profile
성장하는 개발자, 김경아입니다.

0개의 댓글