반응형
#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 했다가 지움
반응형
'C언어 > 문제풀다 하나씩' 카테고리의 다른 글
runtimeerror 나서 틀린 문제 고기 뒤집기 OXOOX (0) | 2020.06.04 |
---|---|
음료 포인트 계산하기 쉬움. (0) | 2020.06.04 |
주변도 같이 사라지는 배열에서 재귀구현 노가다 (0) | 2020.05.29 |
trial and error! 연산자 순열 문제 (0) | 2020.05.29 |
등수일때는 index-1하기 (0) | 2020.05.27 |
string == 이거 된다! (0) | 2020.05.27 |
동전 개수 세기 (0) | 2020.05.27 |
다른 블로그 참고한 조합 재귀방법 0자리를 비우고 for 문 안 씀 (0) | 2020.05.27 |