농장/프로그래머스 코딩테스트

[Python 프로그래머스] 스택/큐 > 기능개발

귤발자 2021. 5. 6. 08:57
728x90
반응형

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

 

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

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

programmers.co.kr

 

 

알고리즘 난이도가 어렵지 않기 때문에 직관적으로 코드를 짜는데 무리가 없다!

def solution(progresses, speeds):
    answer = []
    progresses_c = progresses[:]
    speed_c = speeds[:]
    while progresses_c:
        cnt = 0
        getted = False
        #작업진행
        progresses_c = [(progresses_c[idx]+speed_c[idx]) for idx in range(len(progresses_c))]
        while progresses_c:
            if progresses_c[0] >= 100: #001
                getted = True
                del progresses_c[0]
                del speed_c[0]
                cnt+=1
            else: break
        if getted: answer.append(cnt)
        
    return answer

 

1. 원본 데이터 보유를 위해 인자를 복사했다.

2. 작업 배열이 존재할동안만 작업회차를 반복한다.

3. getted 변수 사용 이유: pop 된 작업이 1개라도 있으면 pop된 작업 개수를 return할 배열에 append시킨다.

4. #001: 작업의 0번째 요소가 100 이상이 아니면 뒤의 요소들은 100이 넘어도 pop될 수 없으므로 작업배열의 0번째 인덱스만 판별한다.

728x90
반응형