[C++] BOJ 8895 - ๋ง๋ ๋ฐฐ์นProblem Solving/Baekjoon Online Judge (BOJ)2025. 4. 10. 15:26
Table of Contents

01. ๐ ๋ฌธ์ ํ์
- ๋์ด๊ฐ 1-n์ ๋ง๋๊ฐ n๊ฐ
- ๋ง๋๋ฅผ ์ผ์ชฝ์ด๋ ์ค๋ฅธ์ชฝ์์ ๋ดค์ ๋, ์์ ๋ง๋๋ณด๋ค ์์ ๋ง๋๊ฐ ๋ค์ ๋ฐฐ์น๋์ด์์ ๊ฒฝ์ฐ ๊ฐ๋ ค์ ธ ๋ณด์ด์ง ์์
({2, 1, 3} ์ผ๋ก ๋ฐฐ์น๋์ด ์์ผ๋ฉด, ์ผ์ชฝ์์ ๋ดค์ ๋, 2์ 3 ๋ง๋๋ง ๋ณด์ฌ 2๊ฐ๋ง ๋ณด์ธ๋ค๋ ๋ง) - ๋ง๋ ๊ฐ์: n, ์ผ์ชฝ์์ ๋ณด์ด๋ ๋ง๋ ๊ฐ์: l, ์ค๋ฅธ์ชฝ์์ ๋ณด์ด๋ ๋ง๋ ๊ฐ์: r
01-1. ๊ฐ๋ฅํ ์๊ฐ ๋ณต์ก๋
- n์ ์ต๋๊ฐ 20์ผ๋ก, ์๊ฐ ๋ณต์ก๋ O(2^N) ์ดํ๋ก ๊ตฌํ ๊ฐ๋ฅ
01-2. ์๊ณ ๋ฆฌ์ฆ ์ ํ
- ๋ง๋ n๊ฐ์ ๋์ด๊ฐ ์์๋๋ก ์ฃผ์ด์ง๋ฏ๋ก, DP๋ฅผ ํตํด ๊ท์น์ ์ฐพ์ ์ํํ ์ ์์
- n์ด 1์ผ๋๋ถํฐ ์์ฐจ์ ์ผ๋ก, ๋ค์ ๋ธ๋ญ์ด ์ฌ ์์น๋ฅผ ์ผ์ชฝ ๋, ์ค๋ฅธ์ชฝ ๋, ๊ทธ ์ธ ์์น์ ๋ฐฐ์นํ์ฌ ๊ฐ ์ํฉ์ ๋ํ ๊ฐ์ง ์๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์ ํ ์ ์์
- ๋จ, ๊ธธ์ด๊ฐ ๊ธด ๊ฒ์ ๋จผ์ ๋ฐฐ์นํ๊ณ n์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ, ์์ฐจ์ ์ผ๋ก ์งง์ ๊ฒ์ ๋ฐฐ์นํ๋ค๊ณ ํ๋จ
(๋ง์ฝ N=4 ์ผ ๋, ๊ธธ์ด๊ฐ 4์ธ ๊ฒ๋ถํฐ ๋ฐฐ์นํ๊ณ ๋ค์์ 3, 2, 1 ์์๋ก ๋ฐฐ์นํ๋ค๋ ๋ป)
02. ๐ ์ฝ๋ ์ค๊ณํ๊ธฐ
- n์ด 1์ธ ๊ฒฝ์ฐ์๋ ๋ง๋๊ฐ ํ๋ ์ด๋ฏ๋ก, dp[1][1][1]์ ๋ํด 1๋ก ์ด๊ธฐํ
- n = 2๋ถํฐ ์ต๋์ธ 20๊น์ง l๊ณผ r์ ๋ํด ๋ฐ๋ณต์ ์ผ๋ก ๋ฉ๋ชจ์ด์ ์ด์
์ ์ํ
- ๋ค์์ ์ฌ ๋ง๋๋ฅผ ์ผ์ชฝ ๋์ ๋๋ ๊ฒฝ์ฐ, ์ผ์ชฝ์์ ๋ดค์ ๋ ๋ฌด์กฐ๊ฑด 1๊ฐ ๋ ๋ณด์ด๊ฒ ๋๋ฏ๋ก [n-1][l-1][r]์ ๊ฐ์ [n][l][r] ์ํ์ ๋ํด์ค
- ๋ค์์ ์ฌ ๋ง๋๋ฅผ ์ค๋ฅธ์ชฝ ๋์ ๋๋ ๊ฒฝ์ฐ, ์ค๋ฅธ์ชฝ์์ ๋ดค์ ๋ ๋ฌด์กฐ๊ฑด 1๊ฐ ๋ ๋ณด์ด๊ฒ ๋๋ฏ๋ก [n-1][l][r-1]์ ๊ฐ์ ์ํ์ ๋ํด์ค
- ๋ง์ฝ, ๋ค์ ๋ง๋๋ฅผ ์ค์ ์ด๋๊ฐ์ ๋๋ ค๊ณ ํ ๋, ์ค์์ ๋ ์ ์๋ ๊ฐ์ง ์๋ ์ ๋์ ์ ์ธํ n-2 ๊ฐ์ ๊ฒฝ์ฐ์ ์๊ฐ ์๋ค.
์ค์์ ๋๋ ๊ฒฝ์ฐ, l๊ณผ r์ ์์ ์ํฅ์ด ์์ผ๋ฏ๋ก, [n-1][l][r] * (n-2) ๋ฅผ [n][l][r] ์ ๋ํด์ค
- n, l, r ์ ์ ๋ ฅ๋ฐ์, ๋ฉ๋ชจ์ด์ ์ด์ ๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅ
03. ๐ ๏ธ ์๋๋ณ ์์
1ํ์ฐจ
04. ๐๏ธ ์ ๋ต ์ฝ๋
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll dp[21][21][21];
int main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
dp[1][1][1] = 1;
for(int n = 2; n <= 20; n++){
for(int l = 1; l <= n; l++){
for(int r = 1; r <= n; r++){
dp[n][l][r] += dp[n-1][l-1][r];
dp[n][l][r] += dp[n-1][l][r-1];
dp[n][l][r] += (dp[n-1][l][r] * (n - 2));
}
}
}
int T;
int N, L, R;
cin >> T;
while(T--){
cin >> N >> L >> R;
cout << dp[N][L][R] << "\n";
}
return 0;
}'Problem Solving > Baekjoon Online Judge (BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [C++] BOJ 1477 - ํด๊ฒ์ ์ธ์ฐ๊ธฐ (0) | 2025.04.11 |
|---|---|
| [C++] BOJ 1806 - ๋ถ๋ถํฉ (0) | 2025.04.10 |
| [C++] BOJ 1562 - ๊ณ๋จ ์ (0) | 2025.04.09 |
| [C++] BOJ 2342 - Dance Dance Revolution (0) | 2025.04.08 |
| [C++] BOJ 10422 - ๊ดํธ (1) | 2025.04.07 |
@ONE_ :: ์ ํธ์
์๋ชป๋ ์ ๋ณด๊ฐ ์๋ค๋ฉด ๋ง์ํด์ฃผ์ธ์!