반응형
문제:
https://school.programmers.co.kr/learn/courses/30/lessons/42586
풀이:
처음에 문제 이해가 좀 어려웠다.
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
반응형
'Python 코딩테스트' 카테고리의 다른 글
그리디: 백준 1931 파이썬 회의실 배정 (1) | 2022.10.15 |
---|---|
DP(다이나믹 프로그래밍): 백준 15988 파이썬 1,2,3 더하기 3 (0) | 2022.10.13 |
DP(다이나믹 프로그래밍): 백준 13398 파이썬 연속합 2 (0) | 2022.10.09 |
DP: 백준 11052 파이썬 카드 구매하기 (1) | 2022.10.06 |
[백준] 2178 미로 탐색 파이썬 (0) | 2022.09.28 |