내가 구현한 문제는 다음과 같다.
해설
이 문제를 보고 100에서 작업의 진도를 빼고, 뺀 값을 속도로 나눠주고
만약 나머지가 있다면 1을 더하는 식으로 해서 알고리즘을 생각했다.
그리고 나온 배열에 대해서는 앞 순서부터 하여 내가 지나온 배열에 대해서 가장 큰 값 보다 크면 배열을 추가해주고, 그렇지 않으면 해당되는 배열의 값을 더해주는 식으로 했다.
(이렇게 한 이유는 기능을 우선순위대로 처리해줘야하지만, 앞 기능보다 뒷 기능이 빨리 끝나서 배포 준비가 된 기능도 포함을 해줘야 하기 때문이다.)
코드
def solution(progresses, speeds):
answer = []
test = []
max = 0
count = 1
for i in range(len(progresses)):
temp = 100-progresses[i]
temp1 = temp//speeds[i]
if temp % speeds[i] != 0:
temp1 = temp1+1
test.append(temp1)
for v in test:
if max < v:
count = 1
answer.append(count)
max = v
else :
count = 1 + count
answer[len(answer)-1] = count
return answer
'알고리즘' 카테고리의 다른 글
파이썬 / 프로그래머스 / 카펫 (0) | 2020.03.05 |
---|---|
파이썬 / 프로그래머스 / K번째수 (0) | 2020.02.22 |
파이썬 / 프로그래머스 / 프린터 (0) | 2020.02.15 |
파이썬 / 프로그래머스 / 더 맵게 (0) | 2020.01.30 |
파이썬 / 프로그래머스 / 탑 (0) | 2020.01.22 |