[λ°±μ€(BOJ)] μλΌμΉκΈ°(17291) C++
λ¬Έμ : BOJ_17291λ² μλΌμΉκΈ°
λ¬Έμ μ€λͺ
μμμ λ ¬, DP(λ€μ΄λλ―Ή νλ‘κ·Έλλ°)
1λ
μ ν λ§λ¦¬μλ λ²λ κ° λ§€λ
λΆμ΄νκ³
1)νμ μ°λμ λΆμ΄νλ λ²λ λ 3λ² λΆμ΄ μ μ¬λ§
2)μ§μ μ°λμ λΆμ΄νλ λ²λ λ 4λ² λΆμ΄μ μ¬λ§
μμΌλ‘, ν΄λΉ λ
λμ μ΄μμλ λ²λ λ€μ΄ μΈμ λΆμ΄νλμ§λ₯Ό μ μ₯ν΄μΌ λ¨μΌλ‘ 2μ€ dpλ₯Ό ν΅ν΄ ν μ μμ΅λλ€.
Solution
μ΄μ€ λ°°μ΄μdp[νμ¬ μ°λ][νμ΄λ μ°λ] = λ²λ μ
λ‘ μ ν΄μ νμ΄λ΄
μλ€. 2μ€ ν¬λ¬Έμ ν΅ν΄ 맀λ
λ§λ€dp[νμ¬ μ°λ][νμ¬ μ°λ] = dp[νμ¬ μ°λ-1][νμ΄λ μ°λ]
λ‘ λΆμ΄λ λ²λ λ₯Ό μ μ₯ν΄μ€λ€.
κΈ°μ‘΄μ λ¨μμλ λ²λ λ νμ 3λ
, μ§μ 4λ
μμ λΆμ΄λ λ²λ λΌλ©΄dp[νμ¬ μ°λ][λΆμ΄λ μ°λ] = dp[νμ¬ μ°λ-1][νμ΄λ μ°λ]
λ‘ μ μ₯ν΄μ€λλ€.
Description
κΈ°μ‘΄μ λ¨μμλ λ²λ λ₯Ό μλ‘μ΄ μ°λμ μ μ₯ν λ 쑰건문μ μ£Όμν΄μ μ§λλ‘ ν΄μΌ ν©λλ€.
#include <iostream>
using namespace std;
int dp[21][21]; // dp[νμ¬ μ°λ][νμ΄λ μ°λ] = λ²λ μ
int main(void) {
dp[1][1] = 1;
for (int i = 2; i <= 20; i++) {
for (int j = 1; j < i; j++) {
if (j % 2) { // νμ μ°λμ νμ΄λ λ²λ
if (i - j < 3) dp[i][j] += dp[i - 1][j];
}
else if (i - j < 4) dp[i][j] += dp[i - 1][j]; // μ§μ μ°λμ νμ΄λ λ²λ
dp[i][i] += dp[i - 1][j]; // νμ¬ μ°λμ νμ΄λ λ²λ
}
}
int year;
scanf("%d", &year);
int result = 0;
for (int i = 1; i <= year; i++) result += dp[year][i];
printf("%d\n", result);
}
'Algorithm > BOJ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ] ACM Craft(1005) (0) | 2022.03.05 |
---|---|
[BOJ] μ΄λͺ¨ν°μ½(14226) (0) | 2022.03.05 |
[BOJ] λ¬Έμ μ§(1776) (0) | 2022.03.05 |
[BOJ] μ κ΅¬μΆ μμ (16437) (0) | 2022.03.05 |
[BOJ] ν볡ν μμ(10434) (0) | 2022.03.05 |