Skip to content

Commit fb74091

Browse files
committed
BOJ_16948 : 데스 나이트
1 parent 9a2e2a4 commit fb74091

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import java.io.*;
2+
import java.util.*;
3+
4+
public class Main {
5+
6+
public static void main(String[] args) throws IOException {
7+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
8+
int N = Integer.parseInt(br.readLine());
9+
StringTokenizer st = new StringTokenizer(br.readLine());
10+
int r1 = Integer.parseInt(st.nextToken());
11+
int c1 = Integer.parseInt(st.nextToken());
12+
int r2 = Integer.parseInt(st.nextToken());
13+
int c2 = Integer.parseInt(st.nextToken());
14+
15+
int[][] visited = new int[N+1][N+1];
16+
int[] dh = {-2, -2, 0, 0, 2, 2};
17+
int[] dw = {-1, 1, -2, 2, -1, 1};
18+
Queue<int[]> q = new LinkedList<>();
19+
q.offer(new int[]{r1, c1});
20+
while(!q.isEmpty()) {
21+
int h = q.peek()[0];
22+
int w = q.peek()[1];
23+
q.poll();
24+
if(h == r2 && w == c2) {
25+
System.out.println(visited[h][w]);
26+
return;
27+
}
28+
29+
for(int i=0; i<6; i++) {
30+
int nextH = h + dh[i];
31+
int nextW = w + dw[i];
32+
if(nextH >= 0 && nextH < N && nextW >= 0 && nextW < N) {
33+
if(visited[nextH][nextW] == 0) {
34+
visited[nextH][nextW] = visited[h][w] + 1;
35+
q.offer(new int[]{nextH, nextW});
36+
}
37+
}
38+
}
39+
}
40+
System.out.println("-1");
41+
}
42+
}

0 commit comments

Comments
 (0)