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

Programming/๋ฐฑ์ค€

230228 [1327: ์†ŒํŠธ๊ฒŒ์ž„]

ํ•ด๋“œ์œ„๊ทธ 2023. 9. 2. 17:10
import sys
from collections import deque

input = sys.stdin.readline

N, K = map(int, input().rstrip().split())
P = list(input().rstrip().split())

visited = set("".join(P))
q = deque([["".join(P),0]])

ans = -1

while(q):
    word, cnt = q.popleft() # ๋‹จ์–ด, ๋‹จ์–ด๋ฅผ ๋ฐ”๊พผ ํšŸ์ˆ˜
    tmpP = list(word)
    
    if tmpP == sorted(tmpP):
        ans = cnt
        break

    isFrist = False
    
    for i in range(N-K+1):
        newP = list(tmpP)
        targetP = newP[i:i+K]
        targetP.reverse()
        for j in range(K):
            newP[i+j]=targetP[j]
        newWord = "".join(newP)
        if newWord not in visited:
            visited.add(newWord)
            q.append([newWord, cnt+1])

print(ans)
๋ฐ˜์‘ํ˜•

'Programming > ๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋ž˜ํผ๋Ÿฐ์Šค  (0) 2023.09.02
230228 [2775: ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ๊ฑฐ์•ผ]  (0) 2023.09.02
230219 [10026: DFS]  (0) 2023.09.02
230219 [2606: DFS]  (0) 2023.09.02
230219 [1260: DFS&BFS]  (0) 2023.09.02