우선 문제를 읽고 굉장히 간단할 것 같다는 생각을 했다.
스택/큐 자료구조를 사용해서 푸는 문제라는 걸 참고해서 풀어보면 될 것 같다.
남은 작업 진도의 값(100-progresses)을 speeds 로 나누고 나머지가 있을 경우 +1
즉, 올림해주면 완성일이 나올 것이다.
그리고 뒷 인덱스의 값이 작더라도 앞 인덱스의 값까지 기다려야 하기 때문에
이때 아마 큐를 사용하는 것 같다.
------------------------------------------------------------------
import math
def solution(progresses, speeds):
preanswer=[]
answer=[]
for pc, sp in zip(progresses, speeds):
cnt=0
cnt = int((100-pc)/sp)
if (100-pc)%sp != 0:
cnt=cnt+1
preanswer.append(cnt)
cnt = 0
for idx in range(len(preanswer)):
if preanswer[cnt] < preanswer[idx]:
answer.append(idx-cnt)
cnt = idx
answer.append(len(preanswer)-cnt)
return answer
------------------------------------------------------------------
사실 완료가 빨리 되더라도 앞 인덱스가 완료되지 않았으면 기다려야하는 부분에서
코드 채점을 하면 제대로 통과가 되질 않아서
생각의 전환이 필요했다.
이중 for 문을 돌려서 풀었었는데 그 방법보다 이 방법이 훨씬 효율적인 것 같다.
'개발 > Python' 카테고리의 다른 글
[Python 프로그래머스] 올바른 괄호 - level2 (스킬 테스트) [연습 문제] (0) | 2020.09.24 |
---|---|
[Python 프로그래머스] 2018 KAKAO BLIND RECRUITMENT - [1차] 다트 게임 (0) | 2020.09.01 |
[Python 프로그래머스] 2018 KAKAO BLIND RECRUITMENT - [1차] 비밀지도 (0) | 2020.09.01 |
[Python 프로그래머스] 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임 (0) | 2020.08.31 |
[Python 프로그래머스] 2019 KAKAO BLIND RECRUITMENT - 실패율 (0) | 2020.08.28 |