wow 2단계 진입하자마자 풀이 시간이 2배가되엇다..
1단계는 1시간에 6문제도풀고 그랬는데..;
2문제만 풀더라도 제대로 풀려고 노력해야겠다!
https://programmers.co.kr/learn/courses/30/lessons/42586
def solution(progresses, speeds):
answer = []
while True:
if not progresses:
return answer
cnt = 0
for i in range(len(progresses)):
if progresses[i] == 100:
cnt += 1
else:
break
if cnt:
answer.append(cnt)
progresses = progresses[cnt:]
speeds = speeds[cnt:]
for i in range(len(progresses)):
if progresses[i] + speeds[i] >= 100:
progresses[i] = 100
else:
progresses[i] += speeds[i]
return answer
progresses 배열에서 완료된 작업을 빼는 과정 처리 때문에 시간이 오래 걸렸다.
처음 시도에서 완료 작업 빼는 기준을 sum() == 100*(100이 마지막으로 등장한 인덱스) 로 놓는 바람에... 죽어도 결과가 안나왔다
그냥 for문을 한번 더 돌려서 작업률이 100이면 횟수를 +1 하고, 100이 아니게 되는 순간 반복문을 중단한 뒤 cnt 를 answer 배열에 추가해주었다.
answer 배열에 추가할 때 꼭 해주어야 하는 작업은 progresses, speeds 배열에서도 완료된 작업들을 빼는 것!
이렇게 작업들을 제외시키다가, progresses 배열이 비는 순간 answer 를 리턴해주면 끝!