KEEP GOING
[python] 프로그래머스 : 기능개발 (stack, queue) 본문
반응형
https://programmers.co.kr/learn/courses/30/lessons/42586?language=python3
1. stack 구현
from math import ceil
def solution(progresses, speeds):
answer = []
stack = []
# # n일간 작업에 대한 데이터 리스트를 stack에 추가
for progress, speed in zip(progresses, speeds):
stack.append(ceil((100 - progress) / speed))
count = 1
now = stack.pop(0)
while stack:
if now < stack[0]:
answer.append(count)
now = stack.pop(0)
count = 1
else:
count += 1
stack.pop(0)
answer.append(count)
return answer
2. 큐로 구현
from collections import deque
from math import ceil
def solution(progresses, speeds):
answer = []
data = []
for progress, speed in zip(progresses, speeds):
data.append(ceil((100 - progress) / speed))
# n일간 작업에 대한 데이터 리스트를 큐에 추가
que = deque(data)
count = 1
now = que.popleft()
while que:
# 오른 옆에 있는 값보다 작다면
if now < que[0]:
answer.append(count)
# count 값 초기화
count = 1
# 큰 값으로 now 초기화
now = que.popleft()
# 크거나 같다면
else:
# 해당 값을 제거 후 count 1 증가
que.popleft()
count += 1
answer.append(count)
return answer
반응형
'code review > stack-queue' 카테고리의 다른 글
[python] 프로그래머스 12899번: 124 나라의 숫자 (0) | 2022.04.28 |
---|---|
[python] 프로그래머스 : 프린터 (0) | 2022.02.18 |
[python] 백준 2504번 : 괄호의 값 (stack) (0) | 2022.02.02 |
[python] 백준 1935번 : 후위 표기식2 (0) | 2022.01.27 |
[python] 백준 2164번 : 카드2 (queue, 2*n-m 규칙 찾기) (0) | 2022.01.27 |
Comments