https://school.programmers.co.kr/learn/courses/30/lessons/42586
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(progresses, speeds):
answer = []
n = 0 #배포할 기능 개수
for i in range(len(progresses)):
if progresses[i] >= 100: #개발된 기능 count
n += 1
else:
answer.append(n) #앞에서 개발된 기능 배포
n = 1
while progresses[i] < 100:
for j in range(i, len(progresses)):
progresses[j] += speeds[j]
answer.append(n) #마지막 progress의 n 추가
answer.remove(answer[0]) #첫번째 progress에서 추가한 n 제거
return answer
배포할 기능의 개수 n을 설정하여 진도(progress)가 100 이상일 경우 n에 1을 더하고, 진도가 100 미만일 경우 앞에서 카운트한 n을 answer에 추가하도록 했다.
각 진도는 현재 인덱스부터 끝까지 반복하며 speed를 더하도록 했다.
마지막 progress에서는 n을 answer에 추가한 후 연산이 이루어지기 때문에 반복문 외부에서 n을 따로 추가했다.
첫번째 progress도 마찬가지로 n을 answer에 추가부터 하기 때문에 n을 따로 제거했다.
'코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스][파이썬] 땅따먹기 (0) | 2023.12.20 |
---|---|
[프로그래머스][파이썬] 주식가격 (0) | 2023.12.20 |
[프로그래머스][파이썬] 캐시 (1) | 2023.12.08 |
[프로그래머스][파이썬] 할인 행사 (1) | 2023.12.07 |
[프로그래머스][파이썬] n^2 배열 자르기 (0) | 2023.12.06 |