본문 바로가기
코딩 테스트/문제 풀기

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

by hazel_ 2021. 3. 25.

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

 

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

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

programmers.co.kr

[풀이] 

Queue를 사용했다.

while문을 돌때마다 progresses를 넣은 q를 update해줬다.

그런 후, q를 맨 앞부터 체크하여 100이 넘은 기능이 있다면 result_day를 1올리고 그 다음 확인,

100이 넘은 기능이 없다면 그 뒤는 보지 않고 바로 break

 

그 후, result_day의 갯수만큼 q와 s에서 popleft를 하고 그 갯수를 result 리스트에 append

 

마지막엔 result리스트만 return!

 

from collections import deque
def solution(progresses, speeds):
    q=deque(progresses)
    s=deque(speeds)
    result=[]

    while q:
        result_day = 0
        for i in range(len(s)):
            q[i]+=s[i] # while문 한번씩 돌때마다 progresses update

        # 완료된 progress가 있나 확인
        for p in range(len(q)):
            if q[p]>99:
                result_day+=1
            else:
                break

        if result_day>0:
            for _ in range(result_day):
                q.popleft()
                s.popleft()

            result.append(result_day)

    return result

 

댓글