rueki

BOJ 1966. 프린터큐 (Python) 본문

python/알고리즘 문제풀이

BOJ 1966. 프린터큐 (Python)

륵기 2020. 5. 3. 22:02
728x90
반응형

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

 

1966번: 프린터 큐

문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를

www.acmicpc.net

t  = int(input())#테스트케이스 수
for i in range(0,t):
	
    # n과 m을 입력받는다. - 문서 개수와 순서
    n, m = list(map(int, input().split(' ')))
    
    #큐에 원소 입력
    q = list(map(int, input().split(' ')))
    
    #큐의 각 원소에 인덱스 부여하기 위해서 enumerate 사용 2,1,3,4-> (2,0),(1,1),(3,2),(4,3)
    q = [(i, idx) for idx, i in enumerate(q)]

	
    count = 0
    while True:
    	#큐에서의 원소 순서가 최대 중요도와 같은 경우
        if q[0][0] == max(q,key=lambda x : x[0])[0]: 
            count +=1
            #문서의 찾고자하는 위치 m과 인덱스 번호가 같으면 출력
            if q[0][1] == m:
                print(count)
                break
            else :
            #m과 같지 않다면 원소를 빼서
                q.pop(0)
        # 맨뒤에 삽입한다.
        else:
            q.append(q.pop(0))
728x90
반응형

'python > 알고리즘 문제풀이' 카테고리의 다른 글

BOJ 10773 . 제로  (0) 2020.05.06
BOJ 5397. 키로거 (Python)  (0) 2020.05.05
BOJ.2798 블랙잭(Python)  (0) 2020.04.30
BOJ.2920 음계(Python)  (0) 2020.04.30
10989 수 정렬하기 3  (0) 2020.01.27
Comments