๐๏ธ Algorithm/๐ฉ ๋ฐฑ์ค
[๋ฐฑ์ค] [Python] 1966๋ฒ_ํ๋ฆฐํฐ ํ_ํ,๋ฑ
Dbswnstjd
2022. 10. 14. 22:14
๋ฌธ์
https://www.acmicpc.net/problem/1966
1966๋ฒ: ํ๋ฆฐํฐ ํ
์ฌ๋ฌ๋ถ๋ ์๋ค์ํผ ์ฌ๋ฌ๋ถ์ ํ๋ฆฐํฐ ๊ธฐ๊ธฐ๋ ์ฌ๋ฌ๋ถ์ด ์ธ์ํ๊ณ ์ ํ๋ ๋ฌธ์๋ฅผ ์ธ์ ๋ช ๋ น์ ๋ฐ์ ‘์์๋๋ก’, ์ฆ ๋จผ์ ์์ฒญ๋ ๊ฒ์ ๋จผ์ ์ธ์ํ๋ค. ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๊ฐ ์์ธ๋ค๋ฉด Queue ์๋ฃ๊ตฌ์กฐ์
www.acmicpc.net
ํ์ด
# ๋ฐฑ์ค 1966๋ฒ ๋ฌธ์ - ํ๋ฆฐํฐ ํ
from collections import deque
import sys
t = int(input())
for i in range(t):
n, m = map(int, input().split())
queue = deque(list(map(int, sys.stdin.readline().split())))
count = 0
while queue:
best = max(queue) # ํ์ฌ์ ์ต๋๊ฐ์ด ๊ฐ์ฅ ๋จผ์ ๋ฐฐ์ถ๋๋ฏ๋ก ์ต๋๊ฐ์ ์ ์ฅ
front = queue.popleft() # ํ์ front๋ฅผ ๋ฝ์์ผ๋ฏ๋ก
m -= 1 # ๋ด ์์น๊ฐ ํ ์นธ ๋น๊ฒจ์ง๋ค.
if best == front: # ๋ฝ์ ์ซ์๊ฐ ์ ์ผ ํฐ ์ซ์์ผ ๋
count += 1 # ํ๋๊ฐ ์์ํ ๋ฐฐ์ถ๋๋ฏ๋ก ์๋ฒ ํ๋ ์ถ๊ฐ
if m < 0: # m์ด 0์ด๋ผ๋ ๊ฒ์ ๋ฝ์ ์ซ์๊ฐ ๋ด ์ซ์๋ผ๋ ๋ป.
print(count)
break
else: # ๋ฝ์ ์ซ์๊ฐ ์ ์ผ ํฐ ์ซ์๊ฐ ์๋๋ฉด
queue.append(front) # ์ ์ผ ๋ค๋ก ๋ฐ๋ ค๋๊ฒ ๋จ
if m < 0: # ์ ์ผ ์์์ ๋ฝํ๋ฉด
m = len(queue) - 1 # ์ ์ผ ๋ค๋ก ์ด๋