알고리즘/프로그래머스 [프로그래머스] 기능개발 최성훈 2019. 11. 10. 19:44 반응형 문제 보기 풀이풀이 이 문제는 스택/큐 문제이다. (난 덱(deque)을 사용해서 문제를 풀었다..) 문제를 푼 로직은 다음과 같다. progress와 speed 리스트를 deque 자료형으로 변환한다. (7~8번째 줄) 각 진행속도만큼 progress를 증가시킨다. (12~14번째 줄) 만약 맨 첫 번째 작업이 끝이 나면, 연속된 작업 중 완료된 작업들의 개수를 구한다. (16~22번째 줄) 만약 배포된 작업이 있으면 정답 배열에 추가한다. (24~26번째 줄) 작업이 남아있는 동안 2~4번을 반복해서 실행한다. 풀이 코드코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 from collections import deque def solution(progresses, speeds): answer = [] q = deque(progresses) speeds = deque(speeds) while q: count = 0 # make progress for i, speed in enumerate(speeds): q[i] += speed # if the first job can be released if q[0] > 100: # release and count progresses continuously while q and q[0] > 100: q.popleft() speeds.popleft() count += 1 # if there's a released progress if count: answer.append(count) return answer Colored by Color Scripter cs 코드 반응형 저작자표시 (새창열림)