프로그래머스 기능개발

GGob2._.·2023년 4월 14일
0

algorithm

목록 보기
16/55

문제 설명

progressesspeeds 배열이 주어지는데,

progresses는 작업을 뜻하며 100이 완료를 의미한다. speeds는 작업 속도를 뜻하며, 1일에 진행할 수 있는 정도를 의미한다.

결과로는, 배포하는 progress의 수를 출력하는데, 배열은 우선순위를 가지고 있어 배열의 앞 원소가 종료될 때 까지 출력할 수 없다.


접근 방식

  • progresses 배열에 있는 일정이 100으로 마무리 될 때 까지 소요되는 일정을 dates 배열로 따로 구현했다.

  • dates 배열에서 앞 원소를 추출한 뒤, dates[0]과 비교해 더 크면 해당 원소도 추출하는 식으로 작성했으며, 추출할 때 count 값을 증가시켰다.

작성한 코드

def solution(progresses, speeds):
    answer = []
    
    dates = [0 for _ in range(len(progresses))]
    
    for i in range(len(progresses)):
        while progresses[i] < 100:
            progresses[i] += speeds[i]
            dates[i] += 1
    
    
    while dates:
        value = dates.pop(0)
        count = 1
        
        while dates and value >= dates[0]:
            dates.pop(0)
            count += 1
        
        answer.append(count)
        
    return answer
profile
소통을 잘하는 개발자가 되고 싶습니다.

0개의 댓글