백준 실버3 1966 프린터 큐 python
https://www.acmicpc.net/problem/1966
1966번: 프린터 큐
여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에
www.acmicpc.net
문제 이해
코드
맞았습니다가 뜬 코드입니다. - 메모리 31256KB | 시간 48ms | 코드 길이 613B
import sys
T = int(sys.stdin.readline().rstrip())
for _ in range(T):
N, M = map(int, sys.stdin.readline().rstrip().split())
doc_li = list(map(int, sys.stdin.readline().rstrip().split()))
num_li = [0]*N
num_li[M] = 1
cnt = 0
while 1:
if doc_li[0] == max(doc_li):
cnt += 1
if num_li[0] == 1:
print(cnt)
break
else:
doc_li.pop(0)
num_li.pop(0)
else:
doc_li.append(doc_li[0])
doc_li.pop(0)
num_li.append(num_li[0])
num_li.pop(0)
Try 1. (백준에 돌려보지는 않았습니다.)
import sys
N, M = map(int, sys.stdin.readline().rstrip().split())
doc_li = list(map(int, sys.stdin.readline().rstrip().split()))
num_li = list(range(N))
i = 0
target = doc_li[M]
while i < N-1:
if doc_li[i] < doc_li[i+1]:
pop_doc = doc_li.pop(i)
doc_li.append(pop_doc)
pop_num = num_li.pop(i)
num_li.append(pop_num)
else:
i += 1
print(num_li[doc_li.index(target)])
Search 🔍
- 구글링한 코드입니다. pop하는 포인트를 잘 찾아야합니다.
'코딩테스트' 카테고리의 다른 글
[백준] 3077 임진왜란 - python (2) | 2023.02.06 |
---|---|
[백준] 1002 터렛 - python (2) | 2023.02.05 |
[백준] 1783 병든 나이트 - python (0) | 2023.02.04 |
[백준] 2346 풍선 터뜨리기 - python (1) | 2023.02.03 |
[백준] 17175 피보나치는 지겨웡~ - python (2) | 2023.02.02 |