visit 처리 안 해주는 백트랙킹~
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #include <stdio.h> #include <string.h> int dx[] = { 1,-1,0,0 }; int dy[] = { 0,0,-1,1 }; int map[10][10], count; int arr[1000000]; int J, H; void DFS(int y, int x, int num, int d) { if (d == 5) { if (arr[num] == 0) { arr[num] = 1; count++; } return; } for (int i = 0; i < 4; i++) { int yy = y + dy[i]; int xx = x + dx[i]; if (map[yy][xx] != -1) { DFS(yy, xx, num * 10 + map[yy][xx], d + 1); } } return; } int main() { memset(map, -1, sizeof(map)); for (int i = 1; i <= 5; i++) for (int j = 1; j <= 5; j++) scanf("%d",&map[i][j]); for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 5; j++) { J = i; H = j; DFS(i, j, map[i][j], 0); } } printf("%d\n",count); return 0; } | cs |
'SW 업무 관련 > 백준' 카테고리의 다른 글
[C언어] 1600. 말이 되고픈 원숭이 (1) | 2018.10.18 |
---|---|
[C언어] 2422. 한윤정이 이탈리아에 가서 아이스크림을 사먹는데 (1) | 2018.10.17 |
[C언어] 13458. 시험감독 (0) | 2018.10.17 |
[C언어] 15684. 사다리 조작 (474) | 2018.10.16 |
[C언어] 12100. 2048(EASY) (415) | 2018.10.15 |