https://school.programmers.co.kr/learn/courses/30/lessons/42586
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답코드
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
if len(progresses) == 0:
answer.append(count)
break
return answer
스택을 이용해서 문제를 풀었다.
혼자서 해볼려고 했지만 나에게는 아직 난이도가 있는 문제여서 해결하지 못하고 다른 분들의 코드를 도움받고 절반부터 시작해서 코드를 구현하였다.
중요한 점은 앞의 문서가 다 되지 않으면 다음의 문서가 완성되더라도 배포가 되지 않는다는 점이다. 그래서 while문으로 각 배열의 [0]번 인덱스의 합이 100이 넘어갈때부터 answer 배열에 append 하였다. 앞에 문서가 배포가 되면 pop(0)으로 제거해 나갔다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.2 더 맵게 (0) | 2022.09.16 |
---|---|
[프로그래머스] Lv.2 프린터 (0) | 2022.09.14 |
[프로그래머스] Lv.2 n^2 배열 자르기 (0) | 2022.09.13 |
[프로그래머스] Lv.2 짝지어 제거하기 (0) | 2022.09.12 |
[프로그래머스] Lv.2 카펫 (0) | 2022.09.12 |