반응형
문제
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 |
최근댓글