본문 바로가기

Problem Solving/Programmers - Python

[Python | 파이썬] 프린터 (프로그래머스 STACK/QUEUE)

[Python | 파이썬] 프린터 (프로그래머스 STACK/QUEUE)

 

 

큐의 맨위에 위치한 작업의 우선순위가 제일 높다면 그 작업을 처리한다. 처리된 작업이 언제처리되는지 알고 싶은 작업 location이라면 반복문을 종료한다. 맨위에 위치한 작업의 우선순위가 제일 높지 않다면 그 작업을 맨뒤로 보낸다.

그리고 모든 반복문에서 location의 위치를 앞으로 한칸씩 당겨주고, location이 0보다 작다면 현재 queue의 길이-1의 인덱스로 설정한다.

 

더보기
from collections import deque
def solution(priorities, location):
    answer = 0
    q = deque(priorities)
    cnt = 0
    while q:
        if max(q) == q[0]:
            q.popleft()
            cnt += 1
            if location == 0:
                answer = cnt
                break
        else:
            q.append(q.popleft())
        location -= 1
        if location < 0:
            location = len(q) - 1
    return answer

https://programmers.co.kr/learn/courses/30/lessons/42587

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr