728x90
- c++
#include <cstring>
#include <iostream>
#define endl "\n"
using namespace std;
int cnt, T;
int result[10000000];
int adj[4][4];
void dfs(int y, int x, int num, int depth) {
if (depth == 7) {
result[num] = 1;
return;
}
num *= 10;
num += adj[y][x];
if (y - 1 >= 0) dfs(y - 1, x, num, depth + 1); // N
if (y + 1 < 4) dfs(y + 1, x, num, depth + 1); // S
if (x - 1 >= 0) dfs(y, x - 1, num, depth + 1); // W
if (x + 1 < 4) dfs(y, x + 1, num, depth + 1); // E
}
int main(int argc, char** argv) {
cin>>T;
for(int tc = 1; tc <= T; ++tc) {
cnt = 0;
memset(result, 0, sizeof(result));
memset(adj, 0, sizeof(adj));
for (int i = 0; i < 4; ++i)
for (int j = 0; j < 4; ++j)
cin >> adj[i][j];
for (int i = 0; i < 4; ++i)
for (int j = 0; j < 4; ++j)
dfs(i, j, 0, 0);
for (int i = 0; i < 10000000; ++i) {
if (result[i] != 0) cnt++;
}
cout << "#" << tc << " " << cnt << endl;
}
return 0;
}
|
cs |
728x90
'PS' 카테고리의 다른 글
프로그래머스 - 이중 우선순위 큐 (0) | 2020.11.23 |
---|---|
프로그래머스 - 더 맵게 (0) | 2020.11.23 |
SWEA 1206 - View (0) | 2020.11.21 |
프로그래머스 - 조이스틱 (0) | 2020.11.20 |
프로그래머스 - 큰 수 만들기 (0) | 2020.11.19 |