풀이
(1, 1)이 시작 지점이므로 (1, 1)부터 DFS를 시작해서 (y, x)가 3인 지점이 있다면 도착지점까지 갈 수 있으므로 answer를 true로 바꾸어 1을 출력하게하여 해결했습니다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static char[][] maze = new char[100][100];
public static boolean answer;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder("");
for (int tc = 1; tc <= 10; ++tc) {
br.readLine();
answer = false;
for (int i = 0; i < 100; ++i) {
maze[i] = br.readLine().toCharArray();
}
dfs(1, 1);
sb.append("#").append(tc).append(" ").append(answer ? 1 : 0).append("\n");
}
System.out.println(sb);
}
public static int[] dx = {0, 0, -1, 1};
public static int[] dy = {-1, 1, 0, 0};
public static void dfs(int y, int x) {
maze[y][x] = '1';
for (int i = 0; i < 4; ++i) {
int ny = y + dy[i];
int nx = x + dx[i];
if (ny < 0 || nx < 0 || ny >= 100 || nx >= 100) {
continue;
}
if (maze[ny][nx] == '3') {
answer = true;
return;
}
if (maze[ny][nx] == '0') {
dfs(ny, nx);
}
}
}
}
'알고리즘 > SWEA' 카테고리의 다른 글
[Java] SWEA 7829번 보물왕 태혁 (0) | 2021.02.25 |
---|---|
[Java] SWEA 1219번 길찾기 (0) | 2021.02.24 |
[Java] SWEA 1232번 사칙연산 (0) | 2021.02.22 |
[Java] SWEA 1233번 사칙연산 유효성 검사 (2) | 2021.02.19 |
[Java] SWEA 1224번 계산기3 (0) | 2021.02.18 |