티스토리 뷰
코딩테스트 연습 - 기능개발
프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는
programmers.co.kr
<풀이>
- 남은 작업을 해치우기 위해 며칠 필요한지 담은 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 |
댓글