반응형

   문제

   https://www.acmicpc.net/problem/1966




큐자료 구조를 사용하여 풀었다.

원하는 문서가 우선순위가 가장높다면 출력해주고

그렇지 않다면 우선순위가 가장 높은 문서가 나올때까지 계속 뒤에 붙여준다.

이를 반복하여 원하는 문서가 출력될때 이때까지 출력된 문서의 개수를 출력해준다.


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
import sys
 
n=int(input())
 
while n>0:
    n-=1
    N, M = map(int, sys.stdin.readline().split())
    que = list(map(int, sys.stdin.readline().split()))
    chk = [0 for _ in range(N)]
    chk[M] = 1#원하는 문서의 위치 표시
 
 
    count = 0
    while True:#원하는 위치의 문서가 프린터 될때까지
        if que[0== max(que):#맥스와 같다면
            count += 1#프린트횟수
            if chk[0== 1:#해당위치가 프린트 됫다면
                print(count)
                break
            else:
                que.pop(0)#제거해준다.
                chk.pop(0)#제거해준다.
        else:
            que.append(que.pop(0))#뒤에넣어준다.
            chk.append(chk.pop(0))#뒤에넣어준다.
cs






반응형

'알고리즘(python) > 자료구조' 카테고리의 다른 글

[Python]Deque 백준 1021  (0) 2020.01.17
[Python]Deque 백준 10866  (0) 2020.01.17
[Python]Queue 백준 11866  (0) 2020.01.16
[Python]Queue 백준 2164  (0) 2020.01.15
[Python]Queue 백준 18258  (0) 2020.01.15
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기