From 47dcb3cb04076dcc3efdd1a0ada215fd19536fd2 Mon Sep 17 00:00:00 2001 From: sh0723 Date: Fri, 26 Jun 2026 18:17:22 +0900 Subject: [PATCH] =?UTF-8?q?1189=20:=20=EC=BB=B4=EB=B0=B1=ED=99=88=20solve?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/week3/BOJ1189/BOJ1189_V1.cpp | 49 ++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/week3/BOJ1189/BOJ1189_V1.cpp diff --git a/src/week3/BOJ1189/BOJ1189_V1.cpp b/src/week3/BOJ1189/BOJ1189_V1.cpp new file mode 100644 index 0000000..19fe006 --- /dev/null +++ b/src/week3/BOJ1189/BOJ1189_V1.cpp @@ -0,0 +1,49 @@ +#include +using namespace std; +int R,C,K; +int visited[5][5]; +char inp_map[5][5]; +int dy[4] = {-1, 0, 1, 0}; +int dx[4] = {0, 1, 0, -1}; +int ret; +void dfs(int y, int x, int distance){ + if (distance > K || (distance != K && y == 0 && x == C-1) ) + return; + if (y == 0 && x == C-1 && distance == K) { + ret += 1; + return; + } + + for (int i=0; i<4; i++) { + int ny = y + dy[i]; + int nx = x + dx[i]; + + if (ny < 0 || nx < 0 || ny >= R || nx >= C || visited[ny][nx] || inp_map[ny][nx] == 'T') + continue; + visited[ny][nx] = 1; + dfs(ny, nx, distance+1); + visited[ny][nx] = 0; + } +} +int main() { + + ios_base::sync_with_stdio(false); + cin.tie(NULL); + cout.tie(NULL); + + cin >> R >> C >> K; + + for (int i=0; i> s; + for (int j=0; j