-
7699. 수지의 수지 맞는 여행SWexpertAcademy 2019. 7. 20. 02:40
#include<iostream> #include<cstdio> #include<queue> #include<vector> #include<utility> #include<stack> using namespace std; int tc; char a[22][22]; bool d[40]; int r, c; int dx[] = { 0,0,1,-1 }; int dy[] = { 1,-1,0,0 }; int MAX = 0; void initial() { for(int i = 0; i < 40; i++){ d[i] = false; } } void dfs(int x, int y, int cnt) { d[a[x][y] - 'A'] = 1; for (int i = 0; i < 4; i++) { int nx = x + dx[i]; int ny = y + dy[i]; if (1 <= nx && nx <= r && ny >= 1 && ny <= c && !d[a[nx][ny] - 'A']) { dfs(nx, ny, cnt + 1); } } d[a[x][y] - 'A'] = 0; if (MAX < cnt) MAX = cnt; } int main() { scanf("%d", &tc); for (int z = 1; z <= tc; z++) { cin >> r >> c; for (int i = 1; i <= r; i++) { for (int j = 1; j <= c; j++) { cin >> a[i][j]; } } dfs(1, 1, 1); printf("#%d %d\n", z, MAX); MAX = 0; } }
최대한 빠르게 하려고 이것저것 include 하다가, 그냥 DFS로 방향 잡았다. BFS로는 풀수없을거같아서..
d[a[nx][ny] - 'A'] 이걸로 알파벳 방문여부 확인이 가능한걸 이제알았다...
'SWexpertAcademy' 카테고리의 다른 글
5650. [모의 SW 역량테스트] 핀볼 게임 (0) 2019.07.25 5644. [모의 SW 역량테스트] 무선 충전 (0) 2019.07.24 5658. [모의 SW 역량테스트] 보물상자 비밀번호 (0) 2019.07.15 1486. 장훈이의 높은 선반 (0) 2019.07.15 1221. [S/W 문제해결 기본] 5일차 - GNS (0) 2019.07.15