알고리즘 유형 : 스택/큐
풀이 참고 없이 스스로 풀었나요? : O
https://programmers.co.kr/learn/courses/30/lessons/42586?language=python3
def solution(progresses, speeds):
answer = []
dates = []
count = 0
for p, s in zip(progresses, speeds):
date = -((p-100) // s)
dates.append(date)
dates.append(float("inf"))
cnt_date = dates[0]
for date in dates:
if date <= cnt_date:
count += 1
else:
answer.append(count)
cnt_date = date
count = 1
return answer
풀이 요약
먼저 각 작업별 소요일수를 리스트로 구해놓는다. zip을 이용하여, 작업과 속도를 가지고 소요일수를 계산한다.
이 때, 100-p가 아닌, p-100을 하여 음수로 만들어주고, 이를 s로 몫을 취한 뒤 다시 마이너스를 곱해주면, math.ceil을 쓰지않고도 올림을 수행할 수 있다.
배운 점, 어려웠던 점