VER2.0★DEL★DEQUE★기능개발[프로그래머스]
2022. 11. 19. 14:21
728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/42586#
VERSION 2.0
from collections import deque
import math
import copy
def solution(progresses, speeds):
answer = []
b = deque()
for p,s in zip(progresses, speeds):
b.append(math.ceil((100-p)/s))
print(b)
a = 1
while True:
if len(b) == 1:
answer.append(a)
break
if b[1]<=b[0]:
a+=1
del b[1]
else:
c = b.popleft()
answer.append(a)
a=1
return answer
VERSION 1.0
from collections import deque
import math
def solution(progresses, speeds):
answer = []
res = []
for i in range(len(progresses)):
a = int(math.ceil((100-progresses[i]) / speeds[i])) #MATH 모듈의 CEIL 올림함수 이용하여 걸리는 시간 계산
res.append(a) #res 리스트에 저장
print(res)
queue = (deque(res)) #res리스트를 deque화
a = list(queue)
cnt = 1 #갯수 첨 부터 1개이므로 1로 초기화
while True:
if len(queue) == 1: #while 문 벗어날때 마지막 queue값이 1개만 남았을 경우 break
answer.append(cnt)
break
else:
if queue[0]<queue[1]: #맨앞꺼가 뒤에꺼보다 작을경우 일을 더 못하는거므로
queue.popleft() #맨앞꺼 없애고
answer.append(cnt) #answer 리스트에 현재 cnt값 저장하고
cnt=1 #cnt값 초기화 시켜준다.
else:
cnt+=1
del queue[1] #del queue[1] 이거 기억하자
idx+=1
return answer
DEL() 기억하자!!!!!!!!!!!!!!!!!!
MATH.CEIL() 올림함수도 기억하자!!!!!!!!!!!!!!!!!!!!!!!!!!
728x90
반응형
'Python(프로그래머스) > 스택,큐' 카테고리의 다른 글
★DEQUE★split()★괄호 회전하기[프로그래머스] (0) | 2023.04.26 |
---|---|
★VER3.0★Deque★문자열슬라이싱★같은 숫자는 싫어[프로그래머스] (1) | 2023.01.03 |
★DEQUE★다리를 지나는 트럭[프로그래머스] (0) | 2022.11.29 |
★DEQUE★enumerate★프린터[프로그래머스] (0) | 2022.11.19 |
★STACK★올바른 괄호[프로그래머스] (0) | 2022.11.18 |