728x90
"뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 같이 배포됩니다." 이 부분을 읽고 스택이 아닌 큐라고 생각했다.
그래서 deque()를 이용하는 문제인가 생각했지만 deque() 없이도 풀 수 있는 문제였다.
두 리스트를 합치는 zip함수를 사용하는 방법도 있지 않을까 생각했지만 그럴 필요 없이 풀 수 있는 문제였다.
주의점!
- 뒷 순서의 요소가 먼저 100 이상이 되어도 빠질 수 없다
해결방법
- progresses와 speeds의 길이는 항상 같다. progresses의 길이만큼 반복해 주며 speeds를 각 요소에 맞게 추가한다
- 뒷 순서의 기능은 앞 순서의 기능이 100이상이 되면 출력될 수 없으므로 progresses[0]만 고려해 준다
def solution(progresses, speeds):
answer = []
while progresses:
for i in range(len(progresses)):
progresses[i] += speeds[i]
cnt = 0
for i in range(len(progresses)):
if progresses[0] >= 100:
progresses.pop(0)
speeds.pop(0)
cnt += 1
if cnt != 0:
answer.append(cnt)
return answer
728x90
'[Coding Test] > [프로그래머스]' 카테고리의 다른 글
[프로그래머스] lv2 프로세스 / 파이썬, 고득점kit (다른 방법) (0) | 2023.10.09 |
---|---|
[프로그래머스] lv2 올바른 괄호 / 파이썬, 고득점kit (0) | 2023.10.09 |
[프로그래머스] lv1 같은 숫자는 싫어 / 파이썬, 고득점kit (0) | 2023.10.08 |
[프로그래머스] lv3 베스트앨범 / 파이썬, 고득점kit (0) | 2023.10.05 |
[프로그래머스] lv2 의상 / 파이썬, 고득점kit (0) | 2023.10.05 |