A. 문제설명
https://www.acmicpc.net/problem/17070
문제에 대한 자세한 설명은 링크 참조
1. N*N 크기의 땅이 주어짐
2. 위와 같은 파이프를 좌표 (N, N)까지 미는데, 미는 중간에 벽지가 있으면 안됨
3. 또한, 파이프는 밀면서 회전시킬 수 있고, 그 방향은 가로/세로/대각선임
4. 가로는 우측, 우하향만, 세로는 하향, 우하향만, 대각선은 우측, 하향, 우하향 모두 밀 수 있음
5. 파이프를 한쪽 끝에서 반대쪽 끝까지 밀 수 있는 모든 경우 구하기
B. 접근법
DFS
파이프의 방향별 미는 규칙에 따라 해당 밀 위치에 벽지가 있는지 확인하고, 없는 경우에만 깊이 우선탐색을 하도록 함
C. 풀이
1. 좌측 상단 모서리에서부터 탐색 진행
2. 나의 경우, 파이프가 회전하여 이동하는 경우에 우하향으로만 진행하므로, 파이프의 오른쪽 모서리에 대한 이동영향만 파악하였다.
3. 매 DFS 호출시, 다음 위치의 파이프 오른쪽 모서리 좌표와 파이프의 방향을 함수 인자로 전달
4. 가로는 우측, 우하향만, 세로는 하향, 우하향만, 대각선은 우측, 하향, 우하향을 밀어, 민 위치에 벽지가 없는 경우 반복하여 DFS 재귀실행
5. 우하단 모서리에 도착한 경우에 대하여 계수
D. 내 코드