daniel7481의 개발일지

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

프로그래머스

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

daniel7481 2022. 7. 18. 18:49
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이

간단한 우선순위 큐 문제였다. 큐가 빌 때까지 계속 speed를 더해주고 만약 100이 넘었다면 progresses와 speeds 둘다 빼주면 된다. 한 번에 몇 명 나왔는지 cnt에 할당하여 리스트에 넣어주었다.

from collections import deque
def solution(progresses, speeds):
    answer = []
    progresses = deque(progresses)
    speeds = deque(speeds)
    while progresses:
        for i in range(len(progresses)):
            progresses[i] += speeds[i]
        cnt = 0
        a = progresses.popleft()
        if a >= 100:
            cnt += 1 
            speeds.popleft()
            while progresses:
                print(progresses)
                b = progresses.popleft()
                if b >= 100:
                    cnt +=1
                    speeds.popleft()
                else:
                    progresses.appendleft(b)
                    break
            answer.append(cnt)
        else:
            progresses.appendleft(a)        
    return answer
반응형