π»
[λ°±μ€] λ€μ΄λλ―Ή νλ‘κ·Έλλ° - 2156. ν¬λμ£Ό μμ λ³Έλ¬Έ
[λ°±μ€] λ€μ΄λλ―Ή νλ‘κ·Έλλ° - 2156. ν¬λμ£Ό μμ
λν¨λ 2020. 3. 20. 13:16λ¬Έμ
ν¨μ£Όλ ν¬λμ£Ό μμνμ κ°λ€. κ·Έ κ³³μ κ°λλ, ν μ΄λΈ μμ λ€μν ν¬λμ£Όκ° λ€μ΄μλ ν¬λμ£Ό μμ΄ μΌλ ¬λ‘ λμ¬ μμλ€. ν¨μ£Όλ ν¬λμ£Ό μμμ νλ €κ³ νλλ°, μ¬κΈ°μλ λ€μκ³Ό κ°μ λ κ°μ§ κ·μΉμ΄ μλ€.
- ν¬λμ£Ό μμ μ ννλ©΄ κ·Έ μμ λ€μ΄μλ ν¬λμ£Όλ λͺ¨λ λ§μ μΌ νκ³ , λ§μ νμλ μλ μμΉμ λ€μ λμμΌ νλ€.
- μ°μμΌλ‘ λμ¬ μλ 3μμ λͺ¨λ λ§μ€ μλ μλ€.
ν¨μ£Όλ λ μ μλ λλ‘ λ§μ μμ ν¬λμ£Όλ₯Ό λ§λ³΄κΈ° μν΄μ μ΄λ€ ν¬λμ£Ό μμ μ νν΄μΌ ν μ§ κ³ λ―Όνκ³ μλ€. 1λΆν° nκΉμ§μ λ²νΈκ° λΆμ΄ μλ nκ°μ ν¬λμ£Ό μμ΄ μμλλ‘ ν μ΄λΈ μμ λμ¬ μκ³ , κ° ν¬λμ£Ό μμ λ€μ΄μλ ν¬λμ£Όμ μμ΄ μ£Όμ΄μ‘μ λ, ν¨μ£Όλ₯Ό λμ κ°μ₯ λ§μ μμ ν¬λμ£Όλ₯Ό λ§μ€ μ μλλ‘ νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μλ₯Ό λ€μ΄ 6κ°μ ν¬λμ£Ό μμ΄ μκ³ , κ°κ°μ μμ μμλλ‘ 6, 10, 13, 9, 8, 1 λ§νΌμ ν¬λμ£Όκ° λ€μ΄ μμ λ, 첫 λ²μ§Έ, λ λ²μ§Έ, λ€ λ²μ§Έ, λ€μ― λ²μ§Έ ν¬λμ£Ό μμ μ ννλ©΄ μ΄ ν¬λμ£Ό μμ΄ 33μΌλ‘ μ΅λλ‘ λ§μ€ μ μλ€.
μ λ ₯
첫째 μ€μ ν¬λμ£Ό μμ κ°μ nμ΄ μ£Όμ΄μ§λ€. (1≤n≤10,000) λμ§Έ μ€λΆν° n+1λ²μ§Έ μ€κΉμ§ ν¬λμ£Ό μμ λ€μ΄μλ ν¬λμ£Όμ μμ΄ μμλλ‘ μ£Όμ΄μ§λ€. ν¬λμ£Όμ μμ 1,000 μ΄νμ μμ΄ μλ μ μμ΄λ€.
μΆλ ₯
첫째 μ€μ μ΅λλ‘ λ§μ€ μ μλ ν¬λμ£Όμ μμ μΆλ ₯νλ€.
μμ μ λ ₯1
6
6
10
13
9
8
1
μμ μΆλ ₯1
33
μκ°
λ§μ½μ ν¬λμ£Ό μμ΄ 3κ°μΌλ,
(1) 1λ²μ§Έ μ + 2λ²μ§Έ μ / (2) 1λ²μ§Έ μ + 3λ²μ§Έ μ / (3) 2λ²μ§Έ μ + 3λ²μ§Έ μ
μ΄λ κ² 3κ°μ§ κ²½μ°κ° λμ¨λ€.
μμ΄ nκ°μΌλ,
(1) nμ ν¬ν¨νμ§ μλ κ²½μ° => d[n-1]
(2) nμ ν¬ν¨νλ κ²½μ° => d[n-2] + wine[n], d[n-3] + wine[n-1] + wine[n](μ°μ 3κ°μ μμ κ³ λ₯Ό μ μμΌλ―λ‘)
μ¦, μΈκ°μ§ κ²½μ°μμ μ΅λκ°μ d[n]μ μ μ₯ν΄μΌνλ―λ‘
(1) d[n-1]
(2) d[n-2] + wine[n]
(3) d[n-3] + wine[n-1] + wine[n]
μ΄λ₯Ό Bottom-Up λ°©μμΌλ‘ forλ¬Έμ μ¬μ©νμ¬ νμλ€.
κ³λ¨ μ€λ₯΄κΈ° λ¬Έμ μ λΉμ·νλ κ±° κ°λ€.
2020/02/25 - [μκ³ λ¦¬μ¦/λ¬Έμ νμ΄] - [λ°±μ€] λμ κ³νλ² - 2579. κ³λ¨ μ€λ₯΄κΈ°
μμ±ν μ½λ
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
31
32
33
34
35
|
#include <iostream>
#include <algorithm>
using namespace std;
int wine[10001];
int d[10001];
int n;
int dp(int n){
d[1] = wine[1];
d[2] = wine[1] + wine[2];
for(int i=3; i<=n; i++){
int temp = max(d[i-1], d[i-2] + wine[i]);
d[i] = max(temp, d[i-3] + wine[i-1] + wine[i]);
}
return d[n];
}
int main(int argc, const char * argv[]) {
// insert code here...
ios::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
for(int i=1; i<=n; i++){
cin >> wine[i];
}
cout << dp(n) << "\n";
return 0;
}
Colored by Color Scripter
|
'μκ³ λ¦¬μ¦ > λ¬Έμ νμ΄ Baekjoon' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] μ‘°ν©λ‘ - 5557. 1νλ (0) | 2020.03.21 |
---|---|
[λ°±μ€] λΆλ₯μμ - 16916. λΆλΆ λ¬Έμμ΄ (0) | 2020.03.20 |
[λ°±μ€] λ°±νΈλνΉ - 3967. λ§€μ§ μ€ν (0) | 2020.03.18 |
[λ°±μ€] μλ£κ΅¬μ‘° - μ² λ²½ 보μ μκ³ λ¦¬μ¦ (0) | 2020.03.18 |
[λ°±μ€] λμ νλ‘κ·Έλλ° - 1463. 1λ‘ λ§λ€κΈ° (0) | 2020.03.16 |