알고리즘
99클럽 코테 스터디 8일차 TIL
hyuggs
2024. 7. 29. 22:35
문제 설명
풀이 과정 & 코드
- 앞에서부터 완료가 되면 하나씩 꺼내서 완료 리스트에 담아 최종 답으로 return 하는 문제임
- 하지만 앞에 progress가 마무리 되지 못하면 뒤가 마무리 되었다 하더라도 계속 완료가 되지 못함
- 따라서 뒤와 상관없이 앞을 계속해서 speeds 리스트에 인덱스에 맞게 증가시키면서 값을 더하고 100 이상을 만족하면 꺼내고 다음걸 확인하는 식으로 코드를 구현하면 됨
def solution(progresses, speeds):
answer = []
done = []
progresses = progresses[::-1]
speeds = speeds[::-1]
while progresses:
if progresses[-1] < 100:
for i in reversed(range(len(progresses))):
progresses[i] += speeds[i]
if progresses[-1] >= 100:
while progresses and progresses[-1] >= 100:
done.append(progresses.pop())
speeds.pop()
answer.append(len(done))
done = []
return answer
