๋ฌธ์
์ฌ๋ฌ๋ถ๋ ์๋ค์ํผ ์ฌ๋ฌ๋ถ์ ํ๋ฆฐํฐ ๊ธฐ๊ธฐ๋ ์ฌ๋ฌ๋ถ์ด ์ธ์ํ๊ณ ์ ํ๋ ๋ฌธ์๋ฅผ ์ธ์ ๋ช ๋ น์ ๋ฐ์ ‘์์๋๋ก’, ์ฆ ๋จผ์ ์์ฒญ๋ ๊ฒ์ ๋จผ์ ์ธ์ํ๋ค. ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๊ฐ ์์ธ๋ค๋ฉด Queue ์๋ฃ๊ตฌ์กฐ์ ์์ฌ์ FIFO - First In First Out - ์ ๋ฐ๋ผ ์ธ์๊ฐ ๋๊ฒ ๋๋ค. ํ์ง๋ง ์๊ทผ์ด๋ ์๋ก์ด ํ๋ฆฐํฐ๊ธฐ ๋ด๋ถ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ์๋๋ฐ, ์ด ํ๋ฆฐํฐ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ธ์๋ฅผ ํ๊ฒ ๋๋ค.
- ํ์ฌ Queue์ ๊ฐ์ฅ ์์ ์๋ ๋ฌธ์์ ‘์ค์๋’๋ฅผ ํ์ธํ๋ค.
- ๋๋จธ์ง ๋ฌธ์๋ค ์ค ํ์ฌ ๋ฌธ์๋ณด๋ค ์ค์๋๊ฐ ๋์ ๋ฌธ์๊ฐ ํ๋๋ผ๋ ์๋ค๋ฉด, ์ด ๋ฌธ์๋ฅผ ์ธ์ํ์ง ์๊ณ Queue์ ๊ฐ์ฅ ๋ค์ ์ฌ๋ฐฐ์น ํ๋ค. ๊ทธ๋ ์ง ์๋ค๋ฉด ๋ฐ๋ก ์ธ์๋ฅผ ํ๋ค.
์๋ฅผ ๋ค์ด Queue์ 4๊ฐ์ ๋ฌธ์(A B C D)๊ฐ ์๊ณ , ์ค์๋๊ฐ 2 1 4 3 ๋ผ๋ฉด C๋ฅผ ์ธ์ํ๊ณ , ๋ค์์ผ๋ก D๋ฅผ ์ธ์ํ๊ณ A, B๋ฅผ ์ธ์ํ๊ฒ ๋๋ค.
์ฌ๋ฌ๋ถ์ด ํ ์ผ์, ํ์ฌ Queue์ ์๋ ๋ฌธ์์ ์์ ์ค์๋๊ฐ ์ฃผ์ด์ก์ ๋, ์ด๋ค ํ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ๋ก ์ธ์๋๋์ง ์์๋ด๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด ์์ ์์์ C๋ฌธ์๋ 1๋ฒ์งธ๋ก, A๋ฌธ์๋ 3๋ฒ์งธ๋ก ์ธ์๋๊ฒ ๋๋ค.
์ ๋ ฅ
์ฒซ ์ค์ ํ ์คํธ์ผ์ด์ค์ ์๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ์ผ์ด์ค๋ ๋ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
ํ ์คํธ์ผ์ด์ค์ ์ฒซ ๋ฒ์งธ ์ค์๋ ๋ฌธ์์ ๊ฐ์ N(1 ≤ N ≤ 100)๊ณผ, ๋ช ๋ฒ์งธ๋ก ์ธ์๋์๋์ง ๊ถ๊ธํ ๋ฌธ์๊ฐ ํ์ฌ Queue์์ ๋ช ๋ฒ์งธ์ ๋์ฌ ์๋์ง๋ฅผ ๋ํ๋ด๋ ์ ์ M(0 ≤ M < N)์ด ์ฃผ์ด์ง๋ค. ์ด๋ ๋งจ ์ผ์ชฝ์ 0๋ฒ์งธ๋ผ๊ณ ํ์. ๋ ๋ฒ์งธ ์ค์๋ N๊ฐ ๋ฌธ์์ ์ค์๋๊ฐ ์ฐจ๋ก๋๋ก ์ฃผ์ด์ง๋ค. ์ค์๋๋ 1 ์ด์ 9 ์ดํ์ ์ ์์ด๊ณ , ์ค์๋๊ฐ ๊ฐ์ ๋ฌธ์๊ฐ ์ฌ๋ฌ ๊ฐ ์์ ์๋ ์๋ค.
์ถ๋ ฅ
ํด์ค ์ฝ๋
test_cases = int(input())
for _ in range(test_cases):
n,m=list(map(int,input().split()))
imp=list(map(int,input().split()))
idx=list(range(len(imp)))
idx[m]='target'
#์์
order = 0
while True:
# imp์ ์ฒซ ๋ฒ์งธ ๊ฐ์ด ์ต๋๊ฐ์ผ ๋
if imp[0] == max(imp):
order += 1
# idx์ ์ฒซ ๋ฒ์งธ ๊ฐ์ด target๊ฐ์ผ ๋
if idx[0] == 'target':
print(order)
break
# idx/imp์ ๊ฐ์ด ์ต๋๊ฐ/target ๊ฐ์ด ์๋๋ฉด ์ฒซ ๋ฒ์งธ ๊ฐ์ ์์ค๋ค.
else:
idx.pop(0)
imp.pop(0)
# imp/idx์ ์ฒซ ๋ฒ์งธ ๊ฐ์ ์ต๋๊ฐ/target์ด ์๋๋ฉด ์์์ ์์ค ๊ฐ์ ๊ฐ ๋ฐฐ์ด์ ์ถ๊ฐํ๋ค.
else:
imp.append(imp.pop(0))
idx.append(idx.pop(0))
๋ถ์ > ์ฐ์ ์ ๋ ฅ๋ ์ค์๋ ๋ฆฌ์คํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด ๋ฆฌ์คํธ์ index๋ฅผ ๋ด์ idx์ ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ๋จผ์ imp ๋ฆฌ์คํธ์ ๊ฐ์ฅ ์ฒซ ๋ฒ์งธ ๊ฐ์ด ์ต๋๊ฐ์ธ ๊ฒฝ์ฐ order๊ฐ์ 1์ ๋ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ฝ idx์ ์ฒซ ๋ฒ์งธ ๊ฐ์ด target์ด ์๋๋ผ๋ฉด idx์ imp์ ์ฒซ ๋ฒ์งธ ๊ฐ์ ์์ค๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ imp์ idx์ ์ฒซ ๋ฒ์งธ ๊ฐ์ด ์ต๋๊ฐ, target์ด ์๋๋ผ๋ฉด ์์์ ์์ค ๊ฐ์ ๊ฐ ๋ฐฐ์ด์ ์ถ๊ฐํ๋ฉด์ idx์ ์ฒซ๋ฒ์งธ ๊ฐ์ด target์ด ๋ ๋๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๋ฉด ๋๋ค.
'Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ์์ธํธ์ค ๋ฌธ์ 0 (#11866) (0) | 2022.04.07 |
---|---|
[BOJ] ์๊ฐ ๊ธธ์ ๊ฑด๋๊ฐ ์ด์ 1 (#14467) (0) | 2022.04.03 |
[BOJ] ์๋ผํ ์คํ ๋ค์ค์ ์ฒด (#2960) (0) | 2022.04.03 |
[BOJ] ๋ฌธ์์ด (#1120) (0) | 2022.04.03 |
[BOJ] ํ์กฐ์์ด์ ๋ฆฌํ๊ณ ์ดใ ใ (#14659) (0) | 2022.04.01 |