ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

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

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

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ํ”„๋ฆฐํ„ฐ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ์„œ ๋Œ€๊ธฐ์—ด์— ๋ฌธ์„œ๋“ค์ด ์žˆ๋‹ค. ์ด๋•Œ, ๊ฐ ๋ฌธ์„œ๋“ค์€ `์šฐ์„ ์ˆœ์œ„`๋ฅผ ๊ฐ€์ง„๋‹ค. ํ(๋ฌธ์„œ ๋Œ€๊ธฐ์—ด)์—์„œ ๋ฌธ์„œ๋ฅผ ์ธ์‡„ํ•˜๊ณ ์ž ํ•  ๋•Œ ํ์— ์žˆ๋Š” ๋ฌธ์„œ๋“ค ์ค‘ ์šฐ์„ ์ˆ˜์œ„๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ๋†’์€ ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด, ํ”„๋ฆฐํŠธํ•˜์ง€ ์•Š๊ณ  ํ์˜ ๋งจ ๋’ค๋กœ ๋ณด๋‚ธ๋‹ค.

 

 ์ด๋Š” ์•ž์„œ ๋‹ค๋ฃฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค: ํ”„๋ฆฐํ„ฐ์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ‘๊ทผํ•˜์˜€๋‹ค.

  • ์ตœ์ดˆ์˜ ๋ฌธ์„œ๊ฐ€ ์œ„์น˜ํ•œ ์ธ๋ฑ์Šค๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด `enumerate`๋ฅผ ํ™œ์šฉํ•œ๋‹ค.
  • `deque`๋ฅผ ํ™œ์šฉํ•˜์—ฌ, ์ธ์‡„ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ์ด๋ฉด ์นด์šดํŠธ๋ฅผ ์ฆ๊ฐ€ํ•˜๊ณ  ์•„๋‹Œ ๊ฒฝ์šฐ `append`ํ•œ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin
from collections import deque


if __name__ == "__main__":
    T = int(stdin.readline())

    for _ in range(T):
        N, M = map(int, stdin.readline().split())
        q = deque(enumerate(map(int, stdin.readline().split())))
        cnt = 0

        while q:
            cur_max = max(q, key=lambda x: x[1])[1]
            idx, priority = q.popleft()

            if priority >= cur_max:
                cnt += 1
                if idx == M:
                    break
            else:
                q.append((idx, priority))

        print(cnt)

 

 

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€