https://www.acmicpc.net/problem/7562
7562๋ฒ: ๋์ดํธ์ ์ด๋
์ฒด์คํ ์์ ํ ๋์ดํธ๊ฐ ๋์ฌ์ ธ ์๋ค. ๋์ดํธ๊ฐ ํ ๋ฒ์ ์ด๋ํ ์ ์๋ ์นธ์ ์๋ ๊ทธ๋ฆผ์ ๋์์๋ค. ๋์ดํธ๊ฐ ์ด๋ํ๋ ค๊ณ ํ๋ ์นธ์ด ์ฃผ์ด์ง๋ค. ๋์ดํธ๋ ๋ช ๋ฒ ์์ง์ด๋ฉด ์ด ์นธ์ผ๋ก ์ด๋ํ ์
www.acmicpc.net
from collections import deque
t = int(input())
def bfs(x1, y1, x2, y2):
queue = deque()
queue.append([x1, y1])
chess[x1][y1] = 1
dx = [-1, -2, -2, -1, 1, 2, 2, 1]
dy = [-2, -1, 1, 2, 2, 1, -1, -2]
while queue:
qx, qy = queue.popleft()
if qx == x2 and qy == y2:
print(chess[qx][qy] - 1)
break
for i in range(8):
x = qx + dx[i]
y = qy + dy[i]
if x < 0 or x >= n or y < 0 or y >= n:
continue
if chess[x][y] == 0:
queue.append([x, y])
chess[x][y] = chess[qx][qy] + 1
for i in range(t):
n = int(input())
chess = [[0 for _ in range(n)] for _ in range(n)]
start = list(map(int, input().split()))
end = list(map(int, input().split()))
bfs(start[0], start[1], end[0], end[1])
๋ฏธ๋ก ํ์ ๋ฌธ์ ๋ ๊ฑฐ์ ๋๊ฐ๋ค
์ขํ ์ด๋ ๋ฐฐ์ด๋ง ์ํ์ข์ฐ๊ฐ ์๋ ๊ทธ๋ฆผ์ ๋์์๋ ์ขํ๋ก ํด์ฃผ๋ฉด ๋๋ค!
๋ ๊ฑฐ ๊ฐ์๋ฐ ๊ณ์ ๋ต์ด ์ ๋์์ ํค๋งค๊ณ ์์๋๋ฐ
ํ๋ฅผ ํจ์ ๋ฐ๊นฅ์ ์ ์ธํด์ ํ์ ์ ์ ์ผ๋ ์ขํ๋ค์ด ๋จ์์์ด์ ๊ทธ๋ฐ๊ฑฐ์๋ค,,,
'๐ค > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 1920: ์ ์ฐพ๊ธฐ (Python) (0) | 2022.02.10 |
---|---|
๋ฐฑ์ค 1707: ์ด๋ถ๊ทธ๋ํ (Python) (0) | 2022.02.03 |
๋ฐฑ์ค 2606: ๋ฒฝ ๋ถ์๊ณ ์ด๋ํ๊ธฐ (Python) (0) | 2022.02.03 |
๋ฐฑ์ค 1697: ์จ๋ฐ๊ผญ์ง (Python) (2) | 2022.02.02 |
๋ฐฑ์ค 7569: ํ ๋งํ (Python) (0) | 2022.02.02 |