알고리즘 (Python)
[프로그래머스/python] Lv.2 기능개발
개발자 쿠키
2024. 8. 5. 09:06
기능개발
https://school.programmers.co.kr/learn/courses/30/lessons/42586
def solution(progresses, speeds):
answer = []
for i in range(len(progresses)):
days = (100 - progresses[i] + speeds[i] - 1) // speeds[i]
answer.append(days)
stack = []
score = answer[0]
count = 1
for i in range(1, len(answer)):
if score >= answer[i]:
count += 1
else:
stack.append(count)
score = answer[i]
count = 1
stack.append(count)
return stack
풀이
days 변수에 100에서 progresses[i]를 빼주고 + speeds[i]를 더해준뒤 1을 뺀다 그리고
그 값에서 speeds를 나누어주면 100이상이 될 때 몇번 걸리는지 값이 나온다.
score라는 변수에 첫번째 값을 저장해주고 score가 answer[i] 보다 크거나 같다면 score가 개발될 동안
answer[i]수도 개발이 되므로 count += 1을 해준다.
만약 answer[i]가 stack에 count를 추가해주고 score를 answer[i]로 기준점을 바꿔준다. 그리고
count를 1로 바꾼다.