728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42586
스택, 큐 연습 문제이다..
사실 스택 큐 같은 경우는 파이썬에서 list로 모두 처리가능한 느낌이 없지 않아 있다
특히나 해당 문제 같은 경우 오히려 "스택이나 큐를 어디서 어떻게 활용할까?" 에 사로잡혀 복잡해질 수 있다.
문제 풀이
1. 진행 상황과 진행 속도를 이용해 각 작업이 끝나게 되는 일자를 구한다.
2. 맨 처음 작업에 pivot을 두고, pivot보다 더 오래 걸리는 작업이 있다면 여태까지 처리한 작업의 수를 정답에 넣어준다
!!!주의할 점!!!
항상 pivot을 변경해가며 자신보다 크거나 작은 수를 찾아나가는 과정엔 문제가 하나 있다.
바로 마지막 pivot에 대해서는 판단이 불가능하다는 건데, 문제 유형에 맞게 잘 처리해주면 된다.
def solution(progresses, speeds):
answer = []
left_days = []
for i in range(len(speeds)): # len progresses == len speeds
left_progress = 100 - progresses[i]
if left_progress % speeds[i] != 0:
left_day = left_progress // speeds[i] + 1
else:
left_day = int(left_progress / speeds[i])
left_days.append(left_day)
now = left_days[0]
cnt = 1
for i in range(1,len(left_days)):
if left_days[i] > now:
answer.append(cnt)
cnt = 0
now = left_days[i]
cnt += 1
answer.append(cnt)
return answer
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/파이썬] 징검다리 (1) | 2023.11.21 |
---|---|
[프로그래머스/파이썬] 단어 변환 (0) | 2023.11.05 |
[프로그래머스/파이썬] 네트워크 (1) | 2023.10.12 |
[프로그래머스/C++] 입국심사 (0) | 2023.10.04 |
[프로그래머스/파이썬] 가장 먼 노드 (0) | 2023.09.22 |