코딩테스트 연습 - 기능개발 | 프로그래머스 스쿨 (programmers.co.kr)
나의 풀이
from collections import deque
def solution(progresses, speeds):
day = deque()
result=[]
state = zip(progresses, speeds)
for p, s in state:
if (100-p)%s!=0:
day.append((100-p) // s + 1)
else:
day.append((100-p) // s)
...
return result
100%가 될 때까지의 기간을 담은 리스트까지만 출력 / 배포 순서 출력을 위해 큐를 이용해 접근하려고 하였으나 어려움이 있었다.
모범 답안
def solution(progresses, speeds):
answer = []
time = 0
count = 0
while len(progresses)> 0:
if (progresses[0] + time*speeds[0]) >= 100:
progresses.pop(0)
speeds.pop(0)
count += 1
else:
if count > 0:
answer.append(count)
count = 0
time += 1
answer.append(count)
return answer
time 변수에 소요되는 일수를 누적시켜 저장하고 진도가 100이 넘으면 count를 1 증가
'코딩테스트 > programmers (python)' 카테고리의 다른 글
Programmers / 2단계 / 점프와 순간 이동 / python (0) | 2024.01.31 |
---|---|
[ 스택 / 큐 ] Programmers / 올바른 괄호 / python (0) | 2024.01.31 |
[ 스택 / 큐 ] Programmers / 같은 숫자는 싫어 / python (0) | 2024.01.31 |
Programmers / 2단계 / 멀리 뛰기 / python (1) | 2024.01.30 |
Programmers / 2단계 / 구명보트 / python (1) | 2024.01.30 |