본문 바로가기
코딩테스트/Python

[프로그래머스][파이썬] 기능개발

by 포뇨j 2023. 12. 11.

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을 따로 제거했다.