๋ฌธ์
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 # ์ ์ผ ๋ค๋ก ์ด๋
'๐๏ธ Algorithm > ๐ฉ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] [Python] 10799๋ฒ_์ ๋ง๋๊ธฐ_์คํ (0) | 2022.10.26 |
---|---|
[๋ฐฑ์ค] [Python] 4949๋ฒ_๊ท ํ์กํ ์ธ์_์คํ (0) | 2022.10.26 |
[๋ฐฑ์ค] [Python] 2164๋ฒ_์นด๋2_ํ,๋ฑ (0) | 2022.10.14 |
[๋ฐฑ์ค] [Python] 10773๋ฒ_์ ๋ก_์คํ (1) | 2022.10.13 |
[๋ฐฑ์ค] [Python] 1149๋ฒ_RGB๊ฑฐ๋ฆฌ_๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (1) | 2022.10.11 |