728x90
https://www.acmicpc.net/problem/7562
7562๋ฒ: ๋์ดํธ์ ์ด๋
์ฒด์คํ ์์ ํ ๋์ดํธ๊ฐ ๋์ฌ์ ธ ์๋ค. ๋์ดํธ๊ฐ ํ ๋ฒ์ ์ด๋ํ ์ ์๋ ์นธ์ ์๋ ๊ทธ๋ฆผ์ ๋์์๋ค. ๋์ดํธ๊ฐ ์ด๋ํ๋ ค๊ณ ํ๋ ์นธ์ด ์ฃผ์ด์ง๋ค. ๋์ดํธ๋ ๋ช ๋ฒ ์์ง์ด๋ฉด ์ด ์นธ์ผ๋ก ์ด๋ํ ์
www.acmicpc.net
์์ฃผ ๊ฐ๋จํ bfs ๋ฌธ์ !
from collections import deque
# ์ด๋ ๊ฐ๋ฅํ 8์นธ
dx = [-1,-2,-2,-1,1,2,2,1]
dy = [-2,-1,1,2,2,1,-1,-2]
test = int(input())
for _ in range(test):
l = int(input())
start_x, start_y = map(int,input().split())
end_x, end_y = map(int,input().split())
board = [[0]*l for i in range(l)]
q=deque()
q.append((start_x,start_y))
while q:
x, y = q.popleft()
if x==end_x and y==end_y: # ๋ชฉํ์ง์ ์ ๋์ฐฉํ๋ฉด ์ข
๋ฃ
break
for i in range(8): # ์ด๋ ๊ฐ๋ฅํ 8์นธ ์ฒดํฌ
nx = x + dx[i]
ny = y + dy[i]
if 0<=nx<l and 0<=ny<l and board[nx][ny]==0: # ๋ฐฉ๋ฌธํ ์ ์๋ ์นธ์ด๋ฉด
board[nx][ny] = board[x][y] + 1 # ์ด๋ ํ์ ๋๋ ค์ค๋ค
q.append((nx,ny))
print(board[x][y]) # ๊ฒฐ๊ณผ ์ถ๋ ฅ
728x90
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > DFS,BFS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค]๋ฏธ๋กํ์ถ (0) | 2023.06.23 |
---|---|
[softeer] ์ฅ์ ๋ฌผ ์ธ์ ํ๋ก๊ทธ๋จ (0) | 2023.05.16 |
[๋ฐฑ์ค]14502๋ฒ: ์ฐ๊ตฌ์ (1) | 2023.03.11 |
[๋ฐฑ์ค]14503๋ฒ: ๋ก๋ด ์ฒญ์๊ธฐ (0) | 2023.03.08 |
[๋ฐฑ์ค]18405๋ฒ: ๊ฒฝ์์ ์ ์ผ (0) | 2023.03.03 |