def solution(progresses, speeds):
answer = []
rest_work = []
for r in range(len(progresses)):
temp = (100 - progresses[r]) // speeds[r]
if (100 - progresses[r]) % speeds[r] != 0:
temp += 1
rest_work.append(temp)
queue = deque(rest_work)
standard = queue.popleft()
count = 0
while queue:
num = queue.popleft()
count += 1
if standard < num:
answer.append(count)
count = 0
answer.append(count+1)
return answer
회심의 코드 작성 후 첫번째 시도인데 틀렸다..
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) # 맨 마지막 작업은 추가가 불가능하기 때문에 while문이 끝나고 추가해준다.
return answer
스택을 사용해서 구했다. 이런 아이디어는 아직 생각하기 이른 것 같다..