문제링크 : https://www.acmicpc.net/problem/1966
구현문제는 아직 어려운걸 풀지않아서 그런지
코딩할때 귀찮음이 좀 큰것같다..나중에 정말 어려운거 만나면 멘붕오겠지?
이 문제도 내용자체는 어렵지않은데 뭔가 코드가 깔끔하지않다.. 하지만 실행 속도도 크게 뒤쳐지지않아서
이정도로 만족하고 넘어가려고한다 다음에 다시 본다면 느낌있게 수정해봐야지
from collections import deque
import sys
input = sys.stdin.readline
#테스트 케이스 갯수
test_count = int(input())
for _ in range(test_count):
#문서갯수, 궁금한문서 위치
n, m = map(int, input().split())
#중요도 리스트
input_list = list(map(int, input().split()))
queue = deque()
#하나씩 큐에 넣기
for i in range(n):
queue.append(input_list[i])
#현재 최고 우선순위
max_v = max(input_list)
#출력횟수
count = 0
while queue:
#가장 빠른 순서 하나 뽑기
v = queue.popleft()
#값이 최대값이랑 같고 문서위치도 0일때
if v == max_v and m ==0:
#출력횟수 1더하고 출력/종료
count +=1
print(count)
break
elif v == max_v and m != 0:
#값이 최대값이랑 같은데 문서위치가 맨앞이 아닐때
count += 1
#해당 문서는 삭제(출력)
input_list.remove(max_v)
#다시 최고우선순위 정하고
max_v = max(input_list)
#문서위치 앞으로 한칸
m -= 1
continue
elif v != max_v and m == 0:
#최고우선순위가 아니라면 다시 맨뒤에 추가하고 문서위치 설정
queue.append(v)
m = len(queue)-1
else:
#최고우선순위도 아니고 문서위치도 뒤에있을때
#이번에 뽑힌건 그냥 뒤에 다시 추가하고 문서위치 -1
queue.append(v)
m -= 1
'알고리즘' 카테고리의 다른 글
python 백준2563 색종이(BOJ2563) (0) | 2023.02.14 |
---|---|
python 백준1764 듣보잡(BOJ1764) (0) | 2023.01.30 |
python 백준1715 카드 정렬하기(BOJ1715) (0) | 2023.01.10 |
python 백준1049 기타줄(BOJ1049) (0) | 2023.01.09 |
python 백준13305 주유소(BOJ13305) (0) | 2023.01.08 |