본문 바로가기
알고리즘/SWEA

[Java] SWEA 1226번 미로1

by 컴공맨 2021. 3. 1.
 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


풀이

DFS를 이용해서 해결할 수 있습니다.


코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Solution {
	public static int answer;
	public static char[][] maze = new char[16][16];
	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();
			
			for (int i = 0; i < 16; ++i) {
				maze[i] = br.readLine().toCharArray();
			}
			
			answer = 0;
			go(1, 1);
			
			sb.append("#").append(tc).append(" ").append(answer).append("\n");
		}
		
		System.out.println(sb);
	}
	
	public static int[] dy = {-1, 1, 0, 0};
	public static int[] dx = {0, 0, -1, 1};
	public static void go(int y, int x) {
		for (int i = 0; i < 4; ++i) {
			if (answer == 1) {
				return;
			}
			
			int ny = y + dy[i];
			int nx = x + dx[i];
			
			if (ny < 0 || nx < 0 || ny >= 16 || nx >= 16) {
				continue;
			}
			
			if (maze[ny][nx] == '3') {
				answer = 1;
				return;
			}
			
			if (maze[ny][nx] == '0') {
				maze[ny][nx] = '1';
				go(ny, nx);
			}
		}
	}
}

 

pyo7410/Algorithm

1일 1커밋을 목표로! Contribute to pyo7410/Algorithm development by creating an account on GitHub.

github.com

 

'알고리즘 > SWEA' 카테고리의 다른 글

[Java] SWEA 1249번 보급로  (0) 2021.03.03
[Java] SWEA 1211번 Ladder2  (0) 2021.03.02
[Java] SWEA 1231번 중위순회  (0) 2021.02.26
[Java] SWEA 7829번 보물왕 태혁  (0) 2021.02.25
[Java] SWEA 1219번 길찾기  (0) 2021.02.24