문제
https://school.programmers.co.kr/learn/courses/30/lessons/42586
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
입출력

해설
해당 문제는 단순한 구현 문제이다.
각 진행률이 주어지고, 해당 기능을 개발하는 속도가 각각 다르게 주어진다.
모든 개발은 동시에 이뤄지며 서비스 배포는 앞에 있는 것부터 진행된다.
뒤에 있는 기능이 구현이 된다해도 앞에 있는 것이 배포가 되지 않으면 배포할 수가 없다.
그렇기에 앞에서부터 최대 날짜를 가지고 진행된 것보다 더 커지면 잘라서 배포하고, 이미 배포한 날짜보다 작으면 같이 배포한 것처럼 생각해서 더해주면 된다.
정답코드
더보기
'''
'25. 09. 02
1. 각 배포마다 몇 개의 기능이 배포되는지를 반환하여라.
7, 3, 9
이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.
5, 10, 1, 1, 20, 1
단순 구현문제인가 싶은데.?
1. 맥시멈 데이를 구하고
2. 현재 구하는 것이 앞에서 구한 맥시멈 데이에 포함이 된다면 추가적으로 배포가 가능하다.
3. 아니라면 끊고 배포를 진행하면 된다.
'''
from math import ceil
def solution(progresses, speeds):
answer = []
maximum_progress = ceil((100 - progresses[0])/speeds[0])
count = 0
for pro, spe in zip(progresses, speeds):
progress = ceil((100 - pro)/spe)
if maximum_progress < progress:#끊고 넘어가야 함.
answer.append(count)
maximum_progress = progress
count = 1
else: count += 1
answer.append(count)
return answer
깃허브 : https://buly.kr/4Qnpy0p
'코딩테스트 > programmers' 카테고리의 다른 글
| 프로그래머스 / 순열 / 피로도 (0) | 2025.09.08 |
|---|---|
| 프로그래머스 / 해시 / [1차] 캐시 (0) | 2025.09.04 |
| 프로그래머스 / 구현 / 행렬의 곱셈 (0) | 2025.08.31 |
| 프로그래머스 / 정렬, 이분탐색 / H-Index (0) | 2025.08.31 |
| 프로그래머스 / 구현 / n^2 배열 자르기 (0) | 2025.08.30 |