※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 12181번 문제인 Googlander (Large)이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/12181
이미 방문한 칸 및 격자 바깥의 칸은 방문할 수 없고, 회전 방향이 고정되어있음을 잘 이용해 문제를 해결해 보자.
위 두 관찰을 이용해 점화식을 구성하여 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
typedef long long ll;
int R, C;
ll dp[26][26];
ll func(ll r, ll c) {
ll &ret = dp[r][c];
if (ret) return ret;
if (c == 1) return ret = 1;
for (int rr = 1; rr <= r; rr++) {
ret += func(c - 1, rr);
}
return ret;
}
void solve() {
cin >> R >> C;
cout << func(R, C) << '\n';
}
int T;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> T;
for (int t = 1; t <= T; t++) {
cout << "Case #" << t << ": ";
solve();
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 30630 // C++] 직각삼각형의 동생은? (0) | 2024.08.07 |
---|---|
[BOJ 7873 // C++] Decision (0) | 2024.08.06 |
[BOJ 2128 // C++] 마지막 조별 시합 (0) | 2024.08.04 |
[BOJ 20914 // C++] QWERTY 자판 (0) | 2024.08.03 |
[BOJ 22288 // C++] Rainbow Road Race (0) | 2024.08.02 |