[BOJ] 2186. 문자판
https://www.acmicpc.net/problem/2186 접근 방법 처음에 문제를 보고 BFS , DFS 로 설계하면 되겠다고 생각을 하였다. 하지만 BFS로 풀 경우 메모리초과와 시간초과가 나와서 DFS+DP 로 풀게 되었다. 먼저 DFS로 탐색을 하면서 그 때 마다 나올 수 있는 경우를 메모이제이션 해주었다. int dfs(int x, int y, int words) 에서 x와 y는 위치를 뜻하고 words는 찾아줘야할 단어의 인덱스로 지정해주었다. static int[][][] dp 는 각각의 위치에서 몇 번째 단어가 되었을 때 끝까지 갈 경우의 수를 저장해주었다. 만약 dp[1][1][2] = 3 이면 (1,1)에서 3번째 단어의 문자는 전체 단어를 만드는 경우의 수는 3개라 표현할 수 ..
2020.07.20