diff --git a/src/week3/BOJ15684/BOJ15684_V2.cpp b/src/week3/BOJ15684/BOJ15684_V2.cpp new file mode 100644 index 0000000..dbebd25 --- /dev/null +++ b/src/week3/BOJ15684/BOJ15684_V2.cpp @@ -0,0 +1,54 @@ +#include +using namespace std; +int visited[31][11]; +int N,M,H; +int ret = 4; +bool check() { + for (int i=1; i<=N; i++) { + int start = i; + for (int j=1; j<=H; j++) { + if (visited[j][start]) start++; + else if (visited[j][start-1]) start--; + } + if (start != i) return false; + } + return true; +} +void solve(int here, int cnt) { + if (cnt > 3 || cnt >= ret) return; + + if (check()) { + ret = cnt; + return; + } + + for (int i=here; i<=H; i++) { + for (int j=1; j> N >> M >> H; + + for (int i=0; i> a >> b; + visited[a][b] = 1; + } + + solve(1,0); + if (ret == 4) cout << -1 << '\n'; + else cout << ret << '\n'; + + + return 0; +} \ No newline at end of file