-
[BFS 알고리즘] 나이트의 이동Algorithms/Breadth First Search 2021. 8. 1. 17:05
기출: BOJ #7562
dx, dy = [2,2,1,1,-1,-1,-2,-2],[1,-1,2,-2,2,-2,1,-1] tc = int(input()) for _ in range(tc): n = int(input()) board = [] visited = [[False for _ in range(n)] for __ in range(n)] start = list(map(int,input().split())) targetX, targetY = map(int,input().split()) queue = [[start,0]] while queue: cur = queue.pop(0) curX, curY = cur[0][0], cur[0][1] curVal = cur[1] if curX==targetX and curY==targetY: print(curVal) break for dir in range(8): mx = curX + dx[dir] my = curY + dy[dir] if mx<0 or my<0 or mx>=n or my>=n: continue if visited[mx][my]: continue visited[mx][my] = True queue.append([[mx,my],curVal+1])
'Algorithms > Breadth First Search' 카테고리의 다른 글
[BFS 알고리즘] 미로 탐색 (0) 2021.08.01 [BFS 알고리즘] 숨바꼭질 (0) 2021.08.01 [BFS 알고리즘] 섬의 개수 (0) 2021.08.01 [BFS 알고리즘] 연결 요소의 개수 (0) 2021.08.01 [BFS 알고리즘, DFS 알고리즘] DFS와 BFS (0) 2021.08.01