https://programmers.co.kr/learn/courses/30/lessons/42586
"""
1. 아이디어
2. 시간복잡도
"""
def solution(progresses, speeds):
answer = []
time = 0
cnt = 0
while progresses:
if progresses[0] + (time * speeds[0]) >= 100:
progresses.pop(0)
speeds.pop(0)
cnt += 1 # 진도가 100%를 넘어서 서비스에 반영한 횟수
else: # 만약 진도를 100% 넘지 못하는 경우
if cnt > 0: # 지금까지 서비스에 반영한 횟수를 더해준다.
answer.append(cnt)
cnt = 0
time += 1 # 시간의 흐름
""" 마지막에 else:부분을 실행하지 않고 반복문을 나오기 때문에
추가적으로 서비스에 반영한 횟수를 더해준다. """
answer.append(cnt)
return answer
스택/큐 문제인데 어렵게 느껴졌다..
def solution(progresses, speeds):
answer = []
while progresses:
cnt = 0 # 서비스에 반영된 횟수
for i in range(len(progresses)):
progresses[i] += speeds[i] # 한 타임마다 진도를 더해준다.
while progresses and progresses[0] >= 100: # 만약 첫번째 진도가 100이 넘으면 그 이후 진도도 더이상 100이상이 없을때 까지 뽑아준다.
progresses.pop(0)
speeds.pop(0)
cnt += 1
if cnt != 0:
answer.append(cnt)
return answer
오히려 처음 풀때보다 더 가독성 있는듯?
X