C언어/문제풀다 하나씩

경로 찾기 장애물 있고

mcdn 2020. 5. 29. 19:28
반응형
#include <iostream>
#include <string>
using namespace std;
int direct[4][2] = { {0,-1}, {0,1}, {1,0}, {-1,0} };
//int moutn[3][3];
int used[3][3] = { {1, 0 , 0} };
void dfs(int lev, int sty, int stx) {
	
	if (sty == 2 && stx == 2) {
		//성공
		
		return;
	}
	for (int i = 0; i < 4;i++) {
		int dy = sty + direct[i][0];
		int dx = stx + direct[i][1];
		if (dy >= 0 && dy < 3 && dx >= 0 && dx < 3) {
			if (used[dy][dx] == 0) {
				used[dy][dx] = 1;
				dfs(lev + 1, dy, dx);
			}
		}
	}
	
}
int main() {
	for (int i = 0; i < 3;i++) {
		for (int j = 0; j < 3;j++) {
			cin >> used[i][j];
		}
	}
	used[0][0] = 1;
	dfs(0, 0, 0);
	
	if (used[2][2] == 1) {
		cout << "가능";
	}
	else {
		cout << "불가능";
	}
}

[2][2]에 1이 채워졌는지 확인하면 

뭐 return 할 필요 없다!

return 했다가 지움

 

반응형