프로그래밍 공부/프로그래머스
[Python] 기능개발
오구.cpp
2022. 12. 26. 23:58
반응형
[코딩테스트 고득점 KIT - 스택/큐]
문제 짧게 3줄 요약.
1. 100% 기능 진도를 나가야 서비스에 반영할 수 있음
2. 앞서 개발할 기능을 다 구현 못하면 먼저 개발한 기능이라도 배포 불가능
3. 배포 하루에 한 번, 한 번 배포에 몇 개의 기능씩 반영되는가?
divmod 함수를 이용하여 서비스에 반영하기 위해 몇 일을 더 구현해야하는지
service라는 변수로 계산하여 list에 담는다.
배포해야 할 기능이 1개 남았을 경우,
앞선 기능이 구현되지 않아 뒤의 기능들을 한번에 배포할 경우,
앞의 기능이 구현되어 배포할 경우
3가지로 나누어 구현해주면 된다!
def solution(progresses, speeds):
answer = []
service_list = []
# divmod(a,b) -> [a//b, a%b] 값
for idx,progress in enumerate(progresses):
service = divmod(100-progress,speeds[idx])[0]
if divmod(100-progress,speeds[idx])[1] != 0:
service += 1
service_list.append(service)
cnt = 1
while(len(service_list)>0):
# 배포해야 할 기능이 1개 남았을 경우
if len(service_list) == 1:
answer.append(cnt)
service_list.pop(0)
# 앞선 기능이 구현되지 않은 경우
elif service_list[0] >= service_list[1]:
cnt += 1
service_list.pop(1)
# 배포
elif service_list[0] < service_list[1]:
answer.append(cnt)
cnt = 1
service_list.pop(0)
return answer
반응형