✍️ 나의 풀이
- 조건을 만족하는데 걸리는 시간을 모두 기록한
리스트
를 만듬
리스트
를 이용해 한번 배포에 꺼낼 수 있는 수를 기록
- 모두 꺼낼 때 까지 반복
🛠 나의 코드
def solution(progresses, speeds):
date = []
answer = []
for i, v in enumerate(progresses):
temp = speeds[i]
val = 100 - v
if val % temp != 0:
date.append(int(val // temp + 1))
else:
date.append(int(val / temp))
print(date)
i = 0
while i < len(date):
print(i)
start = date[i]
num = 1
while i < len(date) - 1:
if start >= date[i + 1]:
i += 1
num += 1
else:
break
i += 1
answer.append(num)
return answer
✍️ 다른 사람 풀이
- time을 이용한 검사
- 한번의 반복문으로 해결
- 현재 빠져나와야 하는 값이 100% 가 될 때 까지
time
을 증가시킴
- 그 값이 100%을 넘으면 큐에서 빼고
count
를 증가시킴
- 다음 큐를 검사해서 100%가 아니면
count
수만큼 배포 그리고 초기화
- 이를 반복해서 큐가 모두 빠질 때까지 반복
🛠 다른 사람 코드
def solution(progresses, speeds):
print(progresses)
print(speeds)
answer = []
time = 0
count = 0
while len(progresses)> 0:
if (progresses[0] + time*speeds[0]) >= 100:
progresses.pop(0)
speeds.pop(0)
count += 1
else:
if count > 0:
answer.append(count)
count = 0
time += 1
answer.append(count)
return answer