- 스택의 맨 위 요소가 끝나려면 몇일 걸리는지 저장(days)
- 맨 위 요소가 끝나려면 걸리는 일동안 스택 요소들 모두 진행이 되므로 전체 스택에 대하여 (진행율 * 일)을 더해줌.
- 스택의 맨 위 요소부터 진행율이 100이 넘는다면 스택과 진행율 모두 pop 해줌. (진행율도 반드시 pop 해주어야 함.)
- 하나가 아닐수도 있으므로 여러개라면 모두 pop해주면서 count 해줌.
- count 해준 값을 answer에 저장하면 종료.
def solution(progresses, speeds):
answer = []
progresses = progresses[::-1]
speeds = speeds[::-1]
while True:
remainder = (100 - progresses[-1]) % speeds[-1]
days = (100 - progresses[-1]) // speeds[-1]
if remainder != 0:
days = days + 1
for i in range(len(progresses)):
progresses[i] = progresses[i] + speeds[i] * days
count = 0
while progresses and progresses[-1] >= 100:
count += 1
progresses.pop()
speeds.pop()
answer.append(count)
if not progresses:
break
return answer
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
'알고리즘[Python] > 프로그래머스' 카테고리의 다른 글
[ Lv 2 ] 소수 찾기 (0) | 2021.06.22 |
---|---|
[ Lv 2 ] 더 맵게 (0) | 2021.06.21 |
[ Lv 2 ] 타겟 넘버 (0) | 2021.06.21 |
[ Lv 2 ] 오픈채팅방 (0) | 2021.06.21 |
[Lv 2] 멀쩡한 사각형 (0) | 2021.06.20 |