소스 코드

def solution(progresses, speeds):
answer = []
n = len(speeds)
ans_lst = [0 for _ in range(n)]
# 작업에 걸리는 시간 계산
for q in range(n):
if (100 - progresses[q]) / speeds[q] == (100 - progresses[q]) // speeds[q]:
ans_lst[q] = (100 - progresses[q]) / speeds[q]
else:
ans_lst[q] = (100 - progresses[q]) // speeds[q] + 1
cnt = 1
num = ans_lst[0]
# 현재 값보다 큰 값을 만날때까지 반복
# 큰 값을 만나면 갱신
for w in range(1, n):
if num >= ans_lst[w]:
cnt += 1
else:
answer.append(cnt)
cnt = 1
num = ans_lst[w]
if w == n - 1:
answer.append(cnt)
return answer

 


해결 방법

1. 일 처리에 걸리는 시간을 구하고

 

2. 기준 시간보다 오래 걸리는 작업을 만날 때까지 진행

 

3. 2를 만나면 값 갱신 및 answer에 현재까지의 값을 저장


느낀 점

 

 

ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.

 

오류적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.

 

혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.