본문 바로가기

Programming/Python

[프로그래머스] 스택/큐 - 기능개발 (Python3, 파이썬)

문제

각 배포마다 몇 개의 기능이 배포되는지가 return값이다. 

주의할 점은 뒤에 있는 기능이 먼저 개발되더라도 앞에 있는 기능이 배포될 때 함께 배포된다는 점이다.

주어지는 배열은 2가지로 progresses(작업의 개수)와 speeds(작업의 개발 속도)이다.

 

코드

def solution(progresses, speeds):  
    answer = []
    day = 0
    count = 0
    
    while progresses:
        if (progresses[0] + day*speeds[0]) >= 100: 
            progresses.pop(0)
            speeds.pop(0)
            count += 1
        else:
            if count > 0:
                answer.append(count)
                count = 0
            day += 1
    answer.append(count)
    
    return answer

return값 answer 배열과 정수 변수 day와 count를 사용했다.

progresses가 0이 아닐 때 while문이 계속 실행된다.

그 안에 if문을 넣어줬는데 progresses의 처음 값과 지난 day와 속도를 곱한 값이 100 넘을 때 pop으로 입력받은 두 배열의 값을 없애준다. count값을 1씩 증가 시켜준다.

else로 가게 되면 count 값이 0보다 클 때 answer 배열에 추가해주고 0으로 초기화시켜준다.

day 변수의 값은 증가시켜준다. 마지막으로 append를 통해 answer 배열에 추가해준다. 

 

참고 링크 : https://huidea.tistory.com/15

 

완료