반응형
deque 함수를 통해 큐 자료구조로 문제를 풀이했습니다.
다른 분들이 풀이하신 것은 대부분 각 기능의 개발 시간을 배포 날짜마다 구하는 코드가 많았는데, 저는 큐에 먼저 모든 기능을 개발하는데 걸리는 시간을 입력해두었습니다.
큐에 자료가 없을 때까지 반복문을 이어가며 큐의 제일 첫 번째 항목이 현재 기능의 개발 시간보다 적게 걸리면, 함께 배포할 수 있는 것으로 판단했습니다.
문제 풀이(파이썬)
from collections import deque
def solution(progresses, speeds):
Q = deque()
n = len(progresses)
res = list()
# 걸리는 시간 계산
for i in range(n):
if (100 - progresses[i]) % speeds[i]:
Q.append((100 - progresses[i]) // speeds[i] + 1)
else:
Q.append((100 - progresses[i]) // speeds[i])
# 배포
while Q:
cur = Q.popleft()
cnt = 1
while True:
if not Q:
break
if Q[0] <= cur:
Q.popleft()
cnt += 1
else:
break
res.append(cnt)
return res
반응형
'Algorithm' 카테고리의 다른 글
[프로그래머스] 완전탐색 - 모의고사(파이썬 문제풀이) (0) | 2021.04.02 |
---|---|
[프로그래머스] 해시 - 베스트앨범(파이썬 문제풀이) (0) | 2021.04.02 |
[프로그래머스] 해시 - 완주하지 못한 선수(파이썬 문제풀이) (0) | 2021.03.31 |
[프로그래머스] DFS/BFS - 네트워크(파이썬 문제 풀이) (0) | 2021.03.18 |
[프로그래머스] DFS/BFS - 타겟 넘버(파이썬 문제 풀이) (0) | 2021.03.18 |
댓글