티스토리 뷰

728x90

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

 

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

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

programmers.co.kr

 

  • 해설 :

현재 개발진도가 담겨있는 배열과 하루마다 진척되는 작업률이 담겨있는 배열이 주어질 때 하루 하루가 지나 작업률이 100%가 되면 작업이 완료된다. 하지만 이 작업은 batch system의 구조로 되어있어 앞의 작업이 먼저 끝나야 뒤의 작업을 완료할 수 있다. 여기서 작업이 완료되는 날마다 몇 개의 작업들이 완료되는지 출력하면 된다.

 

 

 

 

  • 풀이 :

모든 작업이 끝나기 전까지 매일 현재 작업률에 매일 증가하는 작업속도를 더해준다. 이 때, 가장 앞의 작업이 100%를 달성한다면 작업리스트와 작업속도 list에서 100%가 넘지 않는 원소가 나올 때까지 popleft를 해준다. popleft한 횟수를 cnt해주어 answer 리스트에 append하고 모든 작업이 끝날 때까지 반복한다.

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def solution(progresses, speeds):
    answer = []
    while progresses:
        cnt = 0
        for i in range(len(progresses)):
            progresses[i] += speeds[i]
        if progresses[0>= 100:
            while progresses[0>= 100:
                del progresses[0]
                del speeds[0]
                cnt += 1
                if not progresses:
                    break
            answer.append(cnt)
    return answer
cs
320x100
댓글
© 2022 WonSeok, All rights reserved