~๋ชฉ์ฐจ~
๋ฌธ์
https://www.acmicpc.net/problem/1966
๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ
- ์๋ฃ๊ตฌ์กฐ ํ
- ์์๋ฅผ ๋ํ๋ด๋ ๋๊ฐ์ ๋ณ์๋ฅผ ์ ๊ตฌ๋ถํ์ฌ ์ธ์งํ์ฌ์ผํ๋ค.
* ๋จ์ ์ฐ์ ์์ ์ค ์ต๋๊ฐ์ด๋ฏ๋ก ์ถ๋ ฅํ๋ ์์
* ์ด๊ธฐ ํ์ ๊ฐ ๋ฌธ์ ์์
- ํ์ (์ค์๋, ์์น) ๊ฐ์ ์ฝ์ ํ๋ค. ์์น๊ฐ์ ์ฝ์ ํ๋ ์ด์ ๋ M๊ณผ ๋น๊ตํ์ฌ ์ฐพ๋ ๋ฌธ์์ธ์ง ํ์ธํ๊ธฐ ์ํจ
- ์ด๊ธฐ ํ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
๋งค๋ฒ ํ์ ์ต๋๊ฐ์ ๊ตฌํ๋ ๊ฒ๋ณด๋ค ์ธ๋ฑ์ค ๋ณ์(no)๋ฅผ ๋์ด ํ์ธํ๋ ๊ฒ์ด ํจ์จ์ ์ด๊ธฐ ๋๋ฌธ
- ํ๋ฅผ ๋๋ฉฐ ์ต๋๊ฐ๊ณผ ๊ฐ๋ค๋ฉด ์ต๋๊ฐ ์ธ๋ฑ์ค += 1
- ๋ง์ฝ ์ฐพ๋ ์์น(M)๊ณผ ์ถ๋ ฅํ ์ต๋๊ฐ์ด ๊ฐ๋ค๋ฉด ์ถ๋ ฅ ์์(no) ์ถ๋ ฅ ํ ์ข ๋ฃ
์์ฑ ์ฝ๋
from collections import deque # Queue
import sys
input = sys.stdin.readline
T = int(input()) # ํ
์คํธ์ผ์ด์ค
for _ in range(T):
N, M = map(int, input().split()) # N, M ์
๋ ฅ ๋ฐ๊ธฐ
numbers = list(map(int, input().split())) # ์ด๊ธฐ ํ ์
๋ ฅ ๋ฐ๊ธฐ
que = deque()
for i in range(N):
que.append((numbers[i], i)) # ์ฐ์ ์์, ์ด๊ธฐ ์์น ํ์ ์ฝ์
no = 1 # ์ถ๋ ฅ ์์
numbers.sort(reverse=True) # ์ฐ์ ์์๊ฐ ํฐ ๊ฐ๋ถํฐ ์ถ๋ ฅํ๋ฏ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
while que:
q = que.popleft()
if q[0] == numbers[no-1]: # ๊บผ๋ธ ๊ฐ์ด ๋จ์ ๊ฐ์ค ์ต๋๊ฐ์ผ ๋
if q[1] == M: # ์ฐพ๋ ์์น์ ๊ฐ์ผ ๋
print(no)
break
no += 1 # ์ต๋๊ฐ ์
๋ฐ์ดํธ
else:
que.append(q) # ์ต๋๊ฐ์ด ์๋ ๋ ํ์ ๋งจ ๋ค๋ก ์ฝ์
๋์์ด ๋์ จ๋ค๋ฉด ์ข์์ ๋๋ฌ์ฃผ์ธ์๐
'๐๋ฌธ์ ํ์ด > ๐งฉBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 9655 ๋ ๊ฒ์ | DP (0) | 2023.06.18 |
---|---|
[Python] ๋ฐฑ์ค 2579 ๊ณ๋จ ์ค๋ฅด๊ธฐ | DP (2) | 2023.06.16 |
[Python] ๋ฐฑ์ค 16953 A -> B | ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ | BFS (0) | 2023.06.09 |
[Python] ๋ฐฑ์ค 1003 ํผ๋ณด๋์น ํจ์ | DP (0) | 2023.06.08 |
[Python] ๋ฐฑ์ค 9095 1, 2, 3 ๋ํ๊ธฐ | DP (0) | 2023.06.07 |