[λ°±μ€(BOJ)] μ€λ₯΄λ§ μ(11057) C++
λ¬Έμ : BOJ_11057λ² μ€λ₯΄λ§ μ
λ¬Έμ μ€λͺ
DP
DPλ‘ ν΄κ²°ν μ μλ μ€λ₯΄λ§ μμ
λλ€.
1λΆν° 1,000μ μ μ€ νλμΈ Nμ΄ μ£Όμ΄μ§λ©΄, N μλ¦¬λ‘ μ΄λ£¨μ΄μ§ μ€λ₯΄λ§ μμ κ°μλ₯Ό ꡬνλ λ¬Έμ μ
λλ€.
μ¬κΈ°μ μ€λ₯΄λ§ μλ, κ°μ₯ ν° μλ¦ΏμλΆν° κ°μ₯ μμ μλ¦Ώμκ° μ€λ¦μ°¨μμΌλ‘ μ¬λΌκ°μΌ νλλ°, μ΄ λ¬Έμ μμ μκ° κ°μλ μ€λ¦μ°¨μμΌλ‘ μΈμ ν΄ μ€λλ€.
λ νΉμ΄ν μ μ μκ° 0μΌλ‘ μμν μ μμ΅λλ€.
Solution
μ λ 2μ°¨μ dp λ°°μ΄μ λ§λ€μ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
dp[μμ κΈΈμ΄][κ°μ₯ ν° μλ¦Ώμμ μ] -> λ§μ‘±νλ μμ μ€λ₯΄λ§ μμ κ°μ
μ°μ Nμ΄ 1μΈ κ²½μ°λ₯Ό μκ°ν΄λ΄
μλ€.
λ¬Έμ μ μ‘°κ±΄μ΄ 'μλ 0μΌλ‘ μμν μ μλ€.'
μμΌλ‘, 0,1,2,3 ... 7,8,9 => 10κ°κ° λ©λλ€.
μμ 2μ°¨μ λ°°μ΄μ 쑰건μ λ§μΆλ©΄ dp[1][0]=1 , dp[1][1]=1 , ... dp[1][9]=1 μ΄ ν λΉλ©λλ€.
μ΄λ κ² ν μλ¦Ώμμ μ€λ₯΄λ§ μμ λͺ¨λ 1μ ν λΉν΄ μ£Όκ³ , μλ¦Ώμκ° μ¬λΌκ°λ€λ©΄ ꡬνκ³ μ νλ μμ κΈΈμ΄ -1
μ dpλ₯Ό λ΄μ£Όκ³ λ ν΄μ£Όλ©΄ λ©λλ€.
μλ₯Ό λ€μ΄, μμ κΈΈμ΄κ° 3μ΄κ³ κ°μ₯ ν° μ리μκ° 5μΈ μ€λ₯΄λ§ μμ κ°μλ₯Ό ꡬνλ €κ³ ν©λλ€.
κ·Έλ λ€λ©΄, μΈμ ν μκ° κ°μλ μ€λ¦μ°¨μμ΄κΈ° λλ¬Έμ,
dp[3][5] = dp[3-1][5] + dp[3-1][6] + dp[3-1][7] + dp[3-1][8] + dp[3-1][9];
μ΄λΌλ κ²μ μ μ μμ΅λλ€.
for λ¬Έμ μ¬μ©ν΄ λ°ν
μ
λ°©μμΌλ‘ κ° μ€λ₯΄λ§ μλ₯Ό ν λΉν΄ μ£Όλ©΄ λ΅μ μ μ μμ΅λλ€.
Description
- vectorλ₯Ό μ΄μ©ν΄ 2μ€ λ°°μ΄μ λμ ν λΉνμμ΅λλ€.
(vector<vector<long long>>dp(N + 1, vector<long long>(10));)
- λ§μ§λ§ Nμ μ€λ₯΄λ§ μμ κ°μλΌλ 건 μμ κΈΈμ΄κ° N μΌ λ, 0μΌλ‘ μμ, 1λ‘ μμ, ... , 9λ‘ μμμ λͺ¨λ κ²½μ°μ΄λ―λ‘ μ΄λ₯Ό κ²°κ΄κ°μ λν΄μ£Όμμ΅λλ€.
- MODλΌλ μμλ₯Ό λ§λ€μ΄λκ³ mod μ°μ°μ μ§ννμ΅λλ€.
#include <iostream>
#include <algorithm>
#include <vector>
#define MOD 10007
using namespace std;
int main(void) {
int N;
cin >> N;
vector<vector<long long>>dp(N + 1, vector<long long>(10));
for (int i = 1; i <= N; i++) {
for (int j = 0; j <= 9; j++) dp[i][j] = 0;
}
for (int i = 0; i <= 9; i++) dp[1][i] = 1;
for (int i = 2; i <= N; i++) {
for (int j = 0; j <= 9; j++) {
for (int k = j; k <= 9; k++) {
dp[i][j] += dp[i - 1][k];
dp[i][j] %= MOD;
}
}
}
int result = 0;
for (int i = 0; i <= 9; i++) {
result += dp[N][i];
result %= MOD;
}
cout << result << '\n';
return 0;
}
'Algorithm > BOJ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ] νμ΄μ λ°ν΄(2840) (0) | 2022.03.10 |
---|---|
[BOJ] νμ νλ ν(1021) (0) | 2022.03.10 |
[BOJ] μ κ³±μμ ν©(1699) (0) | 2022.03.09 |
[BOJ] λμ 2(2294) (0) | 2022.03.09 |
[BOJ] 2xn νμΌλ§(11726) (0) | 2022.03.09 |