티스토리 뷰

반응형

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

 

코딩테스트 연습 - 프린터

일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린

programmers.co.kr

 


⊙ 문제

⊙ 제한사항

⊙ 입출력 예

⊙ 입출력 예 설명


 

⊙ 문제 접근 과정

 

2차원 배열로 만들어줬다. 같은 우선순위일 때, 구별하기 위해서이다.

 

2차원 배열로 만들어줘서 2번째 값을 location에 해당하는 값, 다시 말해 내가 알고자 하는 인쇄물을 체킹 한다. 그리고 deque를 사용하여 계속해서 돌려줬다.

 

우선순위에 밀리면 뒤로 밀어내고, 우선순위라면 내가 찾는 값인 체킹표시가 되어있는지 체크하고

체크가 안 되어 있으면 빼내고 계속 돌린다.

 


 

⊙ 문제 풀이

 

from collections import deque

def solution(priorities, location):
    answer = 0

    point = deque(priorities)

    for i in range(len(priorities)):
        if i!=location:
            point.append((point.popleft(),0))
        else:
            point.append((point.popleft(),1))

    priorities.sort()
    
    while True:
        if priorities[-1] != point[0][0]:
            point.append(point.popleft())
        else:
            if point[0][1] == 1:
                answer+=1
                break
            else:
                priorities.pop()
                point.popleft()
                answer+=1
    
    return answer

⊙ 마무리

 

 

NONE

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함