티스토리 뷰
<풀이>
- 남은 작업을 해치우기 위해 며칠 필요한지 담은 finish_days라는 deque를 만든다.
- finish_days(Q) 가 빌 때까지 반복하는 반복문을 만든다.
- 가장 첫번째 요소를 뽑고 해당 요소의 값보다 큰 값을 가진 요소가 나올 때 까지 뽑아내면서 count를 늘려준다.
- 큰 값을 가진 요소를 만나면 그 자리에서 멈추고 answer에 추가시켜준다.
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
29
30
31
32
33
|
from collections import deque
from copy import deepcopy
def solution(progresses, speeds):
len_p = len(progresses)
finish_days = []
# 남은 작업을 해치우기 위해 며칠 필요한지 담은 finish_days를 만듬
for i in range(len_p):
remain_work = (100 - progresses[i])/speeds[i]
if remain_work - int(remain_work) > 0.0001:
remain_work = int(remain_work) + 1
else:
remain_work = int(remain_work)
finish_days.append(remain_work)
# deque로 변환
Q = deque(finish_days)
answer = []
while Q:
cur_work = Q.popleft()
count = 1
while Q:
if cur_work >= Q[0]:
Q.popleft()
count += 1
else:
break
answer.append(count)
return answer
|
cs |
반응형
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 네트워크 (0) | 2020.12.14 |
---|---|
[프로그래머스] 타겟 넘버 (0) | 2020.12.14 |
[프로그래머스] 프린터 (0) | 2020.12.13 |
[프로그래머스] 다리를 지나는 트럭 (0) | 2020.12.11 |
[프로그래머스] 주식 가격 (0) | 2020.12.11 |
댓글