728x90
반응형
간단한 큐 문제이다. 큐를 안 쓴 풀이도 있다.
이 문제 같이 앞에 값부터 없애가면서 체크해야 되는 문제는 큐를 사용해보도록 하자.
풀이 Q 사용 O
1. 각 progress 별 필요한 요일을 큐에 저장해준다 -> [ceil((100-progresses[i])/speeds[i]) for i in range(len(speeds))]
2. popleft 한 값이 최대값일 경우 ans에 append 1, 아닐 경우 ans 마지막 요소에 1 더함
from math import ceil
from collections import deque
def solution(progresses, speeds):
ans = []
q = deque([ceil((100-progresses[i])/speeds[i]) for i in range(len(speeds))])
max_t = 0
while q:
t = q.popleft()
if t > max_t:
max_t = t
ans.append(1)
else:
ans[-1] += 1
return ans
풀이 Q 사용 X
from math import ceil
def solution(progresses, speeds):
ans = []
li = [ceil((100-progresses[i])/speeds[i]) for i in range(len(speeds))]
for i in range(len(li)):
if ans == [] or max(li[:i]) < li[i]:
ans.append(1)
else:
ans[-1] += 1
return ans
728x90
반응형
'Agorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 Level 2 타켓 넘버 (0) | 2022.06.29 |
---|---|
프로그래머스 Level 2 스킬트리 (0) | 2022.06.28 |
프로그래머스 Level 1 다트 게임 (0) | 2022.06.26 |
프로그래머스 Level 1 비밀지도 (0) | 2022.06.26 |
프로그래머스 Level 2 거리두기 확인하기 (0) | 2022.06.24 |