#include <iostream> using namespace std; | |
int map[100][100]; | |
bool visit[100][100]; | |
int dy[3]={0, 0, 1}; | |
int dx[3]={-1, 1, 0}; | |
bool dfs(int y, int x) | |
{ | |
for(int i=0; i<3; i++) | |
{ | |
visit[y][x]=1; | |
int ny=y+dy[i]; | |
int nx=x+dx[i]; | |
if(ny==99) | |
{ if(map[99][nx]==2) return 1; else return 0;} | |
if(nx>=0 && nx<100 && ny>=0 && ny<100 & map[ny][nx] && !visit[ny][nx]) | |
{ | |
return dfs(ny,nx); | |
} | |
visit[y][x]=0; | |
} | |
} | |
int main() | |
{ | |
for(int T=1; T<=10; T++) | |
{ | |
int bin; | |
cin >> bin; | |
cout << "#" << T <<" "; | |
for(int i=0; i<100; i++) | |
for(int j=0; j<100; j++) | |
cin >> map[i][j]; | |
for(int i=0; i<100; i++) | |
{ | |
for(int j=0; j<100; j++) | |
for(int k=0; k<100; k++) | |
{ visit[j][k]=0; } | |
if(map[0][i] && dfs(0,i)) { cout << i << endl; break;} | |
} | |
} | |
} |
'알고리즘 문제 풀이 > 1DP_과제(~180615)' 카테고리의 다른 글
171121_1218_괄호 짝짓기 (0) | 2017.11.22 |
---|---|
171121_1211_Ladder2 (0) | 2017.11.21 |
171120_1389_케빈 베이컨의 6단계 법칙 (0) | 2017.11.20 |
171119_11724_연결 요소의 개수 (0) | 2017.11.19 |
171118_2468_안전 영역 (0) | 2017.11.18 |