์ฝ”ํ…Œ์ค€๋น„

<Queue> ๋ฐฑ์ค€ 1966๋ฒˆ. ํ”„๋ฆฐํ„ฐ ํ

์š”๋Œœ๋‹ค 2022. 12. 31. 15:28

 

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

 

1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ

์—ฌ๋Ÿฌ๋ถ„๋„ ์•Œ๋‹ค์‹œํ”ผ ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”„๋ฆฐํ„ฐ ๊ธฐ๊ธฐ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ธ์‡„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ์ธ์‡„ ๋ช…๋ น์„ ๋ฐ›์€ ‘์ˆœ์„œ๋Œ€๋กœ’, ์ฆ‰ ๋จผ์ € ์š”์ฒญ๋œ ๊ฒƒ์„ ๋จผ์ € ์ธ์‡„ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์„œ๊ฐ€ ์Œ“์ธ๋‹ค๋ฉด Queue ์ž๋ฃŒ๊ตฌ์กฐ์—

www.acmicpc.net

from collections import deque
n = int(input())
for _ in range(n):
  a, b = map(int, input().split())
  q = deque(list(map(int, input().split())))
  idx = deque(list(range(a)))
  cnt = 0
  
  while q:
    if q[0] == max(q):
      cnt += 1
      q.popleft()
      m = idx.popleft()
      if m == b: #์šฐ๋ฆฌ๊ฐ€ ๊ตฌํ•˜๋ ค๋Š” ๊ฐ’
        print(cnt)
    else : #์ตœ๊ณ ๊ฐ’์ด ์•„๋‹ˆ๋ฉด(=๋’ค๋กœ ๋ณด๋‚ด์•ผํ•  ๋•Œ)
      r1 = q.popleft()
      q.append(r1)
      r2 = idx.popleft()
      idx.append(r2)

    
"""

4 2
2 1 4 3
0 1 2 3

4 2
4 3 2 1
2 3 0 1
"""