| #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 |