https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14wL9KAGkCFAYD
SW Expert Academy
SW ํ๋ก๊ทธ๋๋ฐ ์ญ๋ ๊ฐํ์ ๋์์ด ๋๋ ๋ค์ํ ํ์ต ์ปจํ ์ธ ๋ฅผ ํ์ธํ์ธ์!
swexpertacademy.com
1. ๋ฌธ์ ์์ฝ
์ถ๋ฐ์ง์ 2์์ ๋์ฐฉ์ง์ 3๊น์ง ๋์ฐฉํ ์ ์์ผ๋ฉด 1, ๋์ฐฉํ ์ ์์ผ๋ฉด 0์ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
2. ํ์ด
dfs๋ฌธ์ ์ด๋ค.
์ถ๋ฐ์ง์ ์ sy, sx ๋์ฐฉ์ง์ ์ ey,ex๋ก ๋ฐ์์ฃผ๊ณ ๊ธฐ์ ์กฐ๊ฑด์ผ๋ก y==ey && x==ex์ด๋ฉด ans=1 ๋ฃ์ด์ฃผ๊ณ returnํด์ฃผ์๋ค.
3. ์ฝ๋
๋๋ณด๊ธฐ
import java.io.*;
import java.util.*;
public class SW_1227_๋ฏธ๋ก2 {
static int[][] map;
static int ans, sy, sx, ey, ex;
static int[] dy= {-1,1,0,0};
static int[] dx= {0,0,-1,1};
static boolean[][] visited;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = null;
for (int tc=1; tc<=10; tc++) {
int T = Integer.parseInt(br.readLine());
//1:๋ฒฝ 0:๊ธธ 2:์ถ๋ฐ 3:๋์ฐฉ
map = new int[100][100];
visited = new boolean[100][100];
for (int i=0; i<100; i++) {
String s = br.readLine();
for (int j=0; j<100; j++) {
map[i][j] = s.charAt(j) - '0';
if (map[i][j] == 2) {
sy = i;
sx = j;
} else if (map[i][j] == 3) {
ey = i;
ex = j;
}
}
} //์
๋ ฅ ๋
ans = 0;
dfs(sy, sx);
System.out.println("#"+tc+" "+ans);
}
}
static void dfs(int y, int x) {
visited[y][x] = true;
if (y==ey && x==ex) {
ans = 1;
return;
}
for (int d=0; d<4; d++) {
int ny= y+dy[d];
int nx= x+dx[d];
if (ny<0 || ny>=100 || nx<0 || nx>=100 || visited[ny][nx]) continue;
if (map[ny][nx] == 1) continue;
dfs(ny, nx);
}
}
}
'Algorithm > SWEA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SWEA] 1868. ํํํํ ์ง๋ขฐ์ฐพ๊ธฐ - Java (0) | 2022.11.13 |
---|---|
[SWEA] 1949. [๋ชจ์ SW ์ญ๋ํ ์คํธ] ๋ฑ์ฐ๋ก ์กฐ์ฑ - Java (1) | 2022.11.09 |
[SWEA] 14510. ๋๋ฌด ๋์ด - Java (0) | 2022.10.26 |
[SWEA] 2115. [๋ชจ์ SW ์ญ๋ํ ์คํธ] ๋ฒ๊ฟ์ฑ์ทจ - Java (0) | 2022.10.24 |
[SWEA] 5650. [๋ชจ์ SW ์ญ๋ํ ์คํธ] ํ๋ณผ ๊ฒ์ Java (0) | 2022.10.22 |