코딩코딩

[프로그래머스] level2 - 기능개발 : 파이썬(Python) 풀이

Jerry Jun 2020. 11. 15. 14:29
728x90

문제

프로그래머스 level2 기능개발

 

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

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

programmers.co.kr

코드

import numpy as np
def solution(progresses, speeds):
    answer = []; count = 0
    progresses = np.array(progresses)
    speeds = np.array(speeds)
    while(len(progresses) > 0):
        progresses += speeds
        if(len(np.where(progresses >= 100)[0]) == 0):
            pass
        elif(progresses[0] >= 100):
            while(1):
                if(len(progresses) != 0 and progresses[0] >= 100):
                    count += 1
                    progresses = np.delete(progresses, 0)
                    speeds = np.delete(speeds, 0)
                else:
                    answer.append(count)
                    count = 0
                    break
    return answer

 

코드풀이

예전에 풀었던 문제라서 그런지 효율적으로는 풀지 못했다.

 

progresses : 작업률이 들어있는 배열

speeds : 작업률에 대한 속도

 

나는 while 루프를 이용해서 풀었다. 빠져나오는 조건은 progresses 의 배열 길이가 0 이 될 때 끝이 난다.

처음에 작업률에 대해 속도를 더하고 그 모든 progresses 배열에 대해 100 이상인 위치를 찾는다.

 

100 이상이 아무 것도 없다면 pass

100 이상이 있다면 그 위치에 있는 progresses 와 speeds 를 삭제한다. count 는 그에 대한 것을 센다.

 

그렇게 반복하여 while 문을 탈출하면 return answer!

 

기능개발
programmers

300x250