๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Problem Solving/BAEKJOON

[baekjoon]python #1966 ํ”„๋ฆฐํ„ฐ ํ

by DevIseo 2022. 6. 23.

[baekjoon]python #1966 ํ”„๋ฆฐํ„ฐ ํ

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

 

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

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

www.acmicpc.net

 

T=int(input())
for tc in range(T):
    N,M =map(int,input().split()) #๋ฌธ์„œ์˜ ๊ฐœ์ˆ˜, ๋ชฉํ‘œidx
    queue = list(map(int,input().split()))
    #enumerate๋ฅผ ์ด์šฉํ•ด val(์šฐ์„ ์ˆœ์œ„)๋ฅผ ์•ž์œผ๋กœ ํ•ด์„œ queue๋ฐฐ์—ด ๋‹ค์‹œ ์„ ์–ธ
    queue = [(val,idx) for idx,val in enumerate(queue)]
    count=0
    while True:
        #์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€๊ฒŒ ๋ฐฐ์—ด์˜ ์ œ์ผ ์•ž์— ์žˆ์„ ๋•Œ +1
        if max(queue)[0] == queue[0][0]:
            count+=1
            #๋ชฉํ‘œidx์™€ ๊ฐ™์„ ๋•Œ, count์ถœ๋ ฅํ›„ break
            if queue[0][1] == M:
                print(count)
                break
            #์•„๋‹๊ฒฝ์šฐ pop!
            else:
                queue.pop(0)
        #์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์นœ๊ตฌ๊ฐ€ ๋งจ ์•ž์ด ์•„๋‹๊ฒฝ์šฐ
        #popํ•˜๊ณ  ๋‹ค์‹œ ์ ค ๋’ค์— append
        else:
            queue.append(queue.pop(0))

๋Œ“๊ธ€