본문 바로가기

Python 코딩테스트

[프로그래머스] 기능개발 파이썬

반응형

문제:

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이:

처음에 문제 이해가 좀 어려웠다.

 

1. progresses, speeds를 큐로 가정한다.

2. 모든 기능이 배포될 때까지, 즉 progresses가 빌 때까지 다음을 반복한다.

  • progresses 길이만큼 순회하여 각 기능의 진행 상황을 더 해준다.
  • 완성된 기능들이 있으면 배포한다.
  • 그날 배포된 개수가 0보다 크면 answer에 넣는다.

3. 특정 날짜에 배포 개수들이 저장된 answer를 반환한다.

 

 

정답:

import math

def solution(progresses, speeds):
    answer = []
    arr = []
    start = 0
    
    for p,s in zip(progresses, speeds):
        arr.append(math.ceil((100 - p) / s))
    print(arr)
    
    for i in range(1, len(arr)):
        if arr[i] > arr[start]:
            answer.append(i - start)
            start = i
    answer.append(len(arr) - start)
    
    return answer
반응형