✅ 코드
1. 실패
def solution(progresses, speeds):
dict = {}
answer = []
j = 0
for i in range(len(speeds)):
dict[i] = progresses[i]
while sum(answer) < len(dict):
a = len(dict)
num = 0
while dict[j] < 100:
for key, value in dict.items():
dict[key] = value + speeds[key]
for i in range(a):
if dict[i] >= 100:
num += 1
else:
answer.append(num-len(answer))
num = 0
j += 1
break
return answer
- 처음에는 for문으로 progresses + speeds 를 한 후에, 첫 번째 인덱스가 100이 넘는 순간 순차적으로 100 넘는 수를 삭제하는 방식으로 진행했으나 out of range로 실패
- 딕셔너리로 다시 시도. pop을 사용하자 또 out of range 오류 발생.
- 위 코드로 test case는 통과했지만, 채점 결과 1번 문제 외에는 모두 탈락했다...
2. 다른 사람의 코드
def solution(progresses, 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