코드와이
[SW Expert Academy] 1227. [S/W 문제해결 기본] 7일차 - 미로2 본문
문제링크
package D4;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class 미로2 {
static char[][] arr;
static int strR, strC, endR, endC, ans;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
for(int tc = 1; tc <= 10 ; tc++) {
sb.append("#").append(tc).append(" ");
br.readLine();
arr = new char[100][100];
for(int i = 0 ; i < 100 ; i++) {
arr[i] = br.readLine().toCharArray();
}
strR = 0;
strC = 0;
endR = 0;
endC = 0;
ans = 0;
for(int i = 0 ; i < 100 ; i++) {
for(int j = 0 ; j < 100 ; j++) {
if (arr[i][j] == '2') {
strR = i;
strC = j;
}
if (arr[i][j] == '3') {
endR = i;
endC = j;
}
}
}
func(strR, strC);
sb.append(ans == 1 ? ans : 0).append("\n");
}
sb.setLength(sb.length() - 1);
System.out.println(sb);
}
static int[] dr = {-1, 1, 0, 0};
static int[] dc = {0, 0, 1, -1};
public static void func(int r, int c) {
if(r == endR && c == endC) {
ans = 1;
return;
}
for(int d = 0 ; d < 4 ; d++) {
int nr = r + dr[d];
int nc = c + dc[d];
if(arr[nr][nc] == '0' || arr[nr][nc] == '3') {
arr[r][c] = '1';
func(nr, nc);
arr[r][c] = '0';
}
}
return;
}
}
'SW_Expert' 카테고리의 다른 글
[SW Expert Academy] 1219. [S/W 문제해결 기본] 4일차 - 길찾기 (0) | 2021.02.26 |
---|---|
[SW Expert Academy] 1232. [S/W 문제해결 기본] 9일차 - 사칙연산 (0) | 2021.02.26 |
[SW Expert Academy] 1767. [SW Test 샘플문제] 프로세서 연결하기 (0) | 2021.02.26 |
[SW Expert Academy] 1231. [S/W 문제해결 기본] 9일차 - 중위순회 (0) | 2021.02.22 |
[SW Expert Academy] 5215. 햄버거 다이어트 (0) | 2021.02.16 |