본문 바로가기

Problem Solving/programmers

[programmers] Level 2 기능 개발.py

728x90
반응형

 

프로그래머스 Level 2 기능 개발을 파이썬을 통해 풀어보았다. 

 

https://programmers.co.kr/learn/courses/30/lessons/42586

 

코딩테스트 연습 - 기능개발

프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는

programmers.co.kr

기능개발.py

 

tomy9729/Algorithm

🐗 내가 직접 작성한 내 코드 🐗. Contribute to tomy9729/Algorithm development by creating an account on GitHub.

github.com



Level 2 - 기능 개발

중요한 점은 세 가지다. 각각 정해진 만큼 기능 개발이 진행된다는 것, 100을 넘으면 배포된다는 것, 100을 넘어도 앞에 기능 개발이 끝나지 않으면 배포되지 않으며 앞에 기능 개발이 끝났을 때 함께 배포된다는 것이다. 

 

각 index별로 progresses에 speeds를 반복할 때마다 한 번씩 더해준다. progresses가 100을 넘어도 상관없으므로 100을 달성하더라도 계속 더해줘도 된다.

 

더하고 나서 가장 앞에 있는 기능 개발부터 몇 번째 기능 개발까지 배포 가능한지 세어준다. 100을 넘은 기능 개발에 대해서 progresses와 speeds에서 삭제하고 수를 체크하면 0번째 index만 확인하면 된다.

 

모든 기능 개발이 완료되거나 완료된 기능이 없으면 반복문을 종료하고, 기능 개발을 마저 진행한다. 

#Level 2 기능개발.py
def solution(progresses, speeds):
    answer = []
    while len(progresses) : 
        for i in range(len(progresses)) : 
            progresses[i] += speeds[i]
        num = 0
        while True : 
            if len(progresses) == 0 : 
                break
            elif progresses[0] >= 100 : 
                num += 1
                progresses.pop(0)
                speeds.pop(0)
            else : 
                break
        if num!=0:
            answer.append(num)
    return answer
728x90
반응형