[프로그래머스] 프린터 (파이썬) - Statssy


코딩테스트 연습 - 프린터 (파이썬)

코딩테스트 연습 - 프린터를 풀어본다.

  • deque로 좀 빠르게 만들고 인덱스를 따로 파는 방법으로 했음
  • 다른 사람이 더 잘 푼거 같음 [()] 방식으로 풀면 좀 쉽게 풀릴만한 문제였음

내 코드

import collections

def solution(priorities, location):
    deq = collections.deque(priorities)
    idx = collections.deque([i for i in range(len(deq))])
    lst = []
    while deq:
        if deq[0] == max(deq):
            deq.popleft()
            lst.append(idx.popleft())
        else:
            deq.append(deq.popleft())     
            idx.append(idx.popleft())
    answer = lst.index(location)+1
    return answer

잘푼 사람 코드

def solution(priorities, location):
    queue =  [(i,p) for i,p in enumerate(priorities)]
    answer = 0
    while True:
        cur = queue.pop(0)
        if any(cur[1] < q[1] for q in queue):
            queue.append(cur)
        else:
            answer += 1
            if cur[0] == location:
                return answer





© 2018. by statssy

Powered by statssy