μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- νλ‘κ·Έλλ¨Έμ€
- λλΉμ°μ νμ
- λμ κ³νλ²
- λ°μ΄ν°λ² μ΄μ€
- μν
- λ³ν©μ λ ¬
- μ°μ μμν
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- κ·Έλννμ
- λ¨Έμ§μνΈ
- SQL
- BFS
- μ λ ¬
- κΉμ΄μ°μ νμ
- μμνμ
- LIS
- db
- skala1κΈ°
- DP
- μ€λΈμ
- κ·Έλν
- ꡬν
- 그리λ
- λμ ν©
- ν°μ€ν 리μ±λ¦°μ§
- μκ³ λ¦¬μ¦
- νμ΄μ¬
- λ°±μ€
- skala
- DFS
- Today
- Total
πππ°πΈ π£πΆπ΅ π΄π΅π¦π’π₯πΊ
[λ°±μ€] 1932λ²: μ μ μΌκ°ν - C++ λ³Έλ¬Έ
λ¬Έμ
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
μ κ·Έλ¦Όμ ν¬κΈ°κ° 5μΈ μ μ μΌκ°νμ ν λͺ¨μ΅μ΄λ€.
맨 μμΈ΅ 7λΆν° μμν΄μ μλμ μλ μ μ€ νλλ₯Ό μ ννμ¬ μλμΈ΅μΌλ‘ λ΄λ €μ¬ λ, μ΄μ κΉμ§ μ νλ μμ ν©μ΄ μ΅λκ° λλ κ²½λ‘λ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νλΌ. μλμΈ΅μ μλ μλ νμ¬ μΈ΅μμ μ νλ μμ λκ°μ μΌμͺ½ λλ λκ°μ μ€λ₯Έμͺ½μ μλ κ² μ€μμλ§ μ νν μ μλ€.
μΌκ°νμ ν¬κΈ°λ 1 μ΄μ 500 μ΄νμ΄λ€. μΌκ°νμ μ΄λ£¨κ³ μλ κ° μλ λͺ¨λ μ μμ΄λ©°, λ²μλ 0 μ΄μ 9999 μ΄νμ΄λ€.
μ λ ₯
첫째 μ€μ μΌκ°νμ ν¬κΈ° n(1 ≤ n ≤ 500)μ΄ μ£Όμ΄μ§κ³ , λμ§Έ μ€λΆν° n+1λ²μ§Έ μ€κΉμ§ μ μ μΌκ°νμ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ ν©μ΄ μ΅λκ° λλ κ²½λ‘μ μλ μμ ν©μ μΆλ ₯νλ€.
μ€λλ§μ νμ΄λ΄€λ λ€μ΄λλ―Ή νλ‘κ·Έλλ° λ¬Έμ .
μΌκ°νμ μ΄μ°¨μ λ°°μ΄λ‘ μκ°ν΄λ΄€μ λ, (i, j) μμΉμ μλ μ«μλ (i - 1, j - 1)μ΄λ (i - 1, j)κΉμ§μ ν©μ λν΄μ§ μ μλ€. κ°μ₯ ν° ν©μ ꡬνκΈ° μν΄μλ λ μ€μ λ ν° ν©μ λν΄μ£Όλ©΄ λλ€. μ΄λ₯Ό μμΌλ‘ μκ°ν΄λ³΄λ©΄ λ€μκ³Ό κ°λ€.
triangle[i][j] = MAX(triangle[i - 1][j - 1], triangle[i - 1][j - 1])
jκ° λͺ¨μ리μ μμΉνμ λμ κ²½μ°λ§ λ°λ‘ μκ°ν΄μ£Όλ©΄(μ¬μ€ μ°Ύμ보면 μΌμ΄μ€ λΆλ₯ μνκ³ λ κ°λ¨νκ² ν μ μλ λ°©λ²λ μμ γ γ ) κΈλ°© ν μ μλ λ¬Έμ μλ€.
λ¬Έμ λ bottom-up λ°©μμΌλ‘ νμλ€.
μ½λ
#include <cstdio>
#define MAX 501
int triangle[MAX][MAX];
int DP(int num);
int max(int a, int b) {
return a > b ? a : b;
}
int main(void) {
int n;
scanf("%d", &n);
for(int i = 0; i < n; i++) {
for(int j = 0; j <= i; j++) {
scanf("%d", &triangle[i][j]);
}
}
printf("%d\n", DP(n));
return 0;
}
int DP(int num) {
int result = 0;
for(int i = 0; i < num; i++) {
for(int j = 0; j <= i; j++) {
if(j == 0) {
triangle[i][j] = triangle[i - 1][j] + triangle[i][j];
}
else if(j == i) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i][j];
}
else {
triangle[i][j] = max(triangle[i - 1][j - 1], triangle[i - 1][j]) + triangle[i][j];
}
result = max(result, triangle[i][j]);
}
}
return result;
}
'μ½λ©ν μ€νΈ μ€λΉ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 1966λ²: νλ¦°ν° ν - C++ (0) | 2022.02.17 |
---|---|
[λ°±μ€] 14501λ²: ν΄μ¬ - C++ (0) | 2022.02.15 |
[λ°±μ€] 3020λ²: κ°λ₯λ²λ - C++ (0) | 2022.02.09 |
[λ°±μ€] 2512λ²: μμ° - C++ (0) | 2022.02.03 |
[λ°±μ€] 5639λ²: μ΄μ§ κ²μ νΈλ¦¬ - C++ (0) | 2022.01.24 |