π»
[λ°±μ€] λμ κ³νλ² - 2579. κ³λ¨ μ€λ₯΄κΈ° λ³Έλ¬Έ
[λ°±μ€] λμ κ³νλ² - 2579. κ³λ¨ μ€λ₯΄κΈ°
λν¨λ 2020. 2. 25. 22:32λ¬Έμ
κ³λ¨ μ€λ₯΄κΈ° κ²μμ κ³λ¨ μλ μμμ λΆν° κ³λ¨ κΌλκΈ°μ μμΉν λμ°©μ κΉμ§ κ°λ κ²μμ΄λ€. <κ·Έλ¦Ό 1>κ³Ό κ°μ΄ κ°κ°μ κ³λ¨μλ μΌμ ν μ μκ° μ°μ¬ μλλ° κ³λ¨μ λ°μΌλ©΄ κ·Έ κ³λ¨μ μ°μ¬ μλ μ μλ₯Ό μ»κ² λλ€.
μλ₯Ό λ€μ΄ <κ·Έλ¦Ό 2>μ κ°μ΄ μμμ μμλΆν° 첫 λ²μ§Έ, λ λ²μ§Έ, λ€ λ²μ§Έ, μ¬μ― λ²μ§Έ κ³λ¨μ λ°μ λμ°©μ μ λλ¬νλ©΄ μ΄ μ μλ 10 + 20 + 25 + 20 = 75μ μ΄ λλ€.
κ³λ¨ μ€λ₯΄λ λ°λ λ€μκ³Ό κ°μ κ·μΉμ΄ μλ€.
- κ³λ¨μ ν λ²μ ν κ³λ¨μ© λλ λ κ³λ¨μ© μ€λ₯Ό μ μλ€. μ¦, ν κ³λ¨μ λ°μΌλ©΄μ μ΄μ΄μ λ€μ κ³λ¨μ΄λ, λ€μ λ€μ κ³λ¨μΌλ‘ μ€λ₯Ό μ μλ€.
- μ°μλ μΈ κ°μ κ³λ¨μ λͺ¨λ λ°μμλ μ λλ€. λ¨, μμμ μ κ³λ¨μ ν¬ν¨λμ§ μλλ€.
- λ§μ§λ§ λμ°© κ³λ¨μ λ°λμ λ°μμΌ νλ€.
λ°λΌμ 첫 λ²μ§Έ κ³λ¨μ λ°κ³ μ΄μ΄ λ λ²μ§Έ κ³λ¨μ΄λ, μΈ λ²μ§Έ κ³λ¨μΌλ‘ μ€λ₯Ό μ μλ€. νμ§λ§, 첫 λ²μ§Έ κ³λ¨μ λ°κ³ μ΄μ΄ λ€ λ²μ§Έ κ³λ¨μΌλ‘ μ¬λΌκ°κ±°λ, 첫 λ²μ§Έ, λ λ²μ§Έ, μΈ λ²μ§Έ κ³λ¨μ μ°μν΄μ λͺ¨λ λ°μ μλ μλ€.
κ° κ³λ¨μ μ°μ¬ μλ μ μκ° μ£Όμ΄μ§ λ μ΄ κ²μμμ μ»μ μ μλ μ΄ μ μμ μ΅λκ°μ ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
μ λ ₯μ 첫째 μ€μ κ³λ¨μ κ°μκ° μ£Όμ΄μ§λ€.
λμ§Έ μ€λΆν° ν μ€μ νλμ© μ μΌ μλμ λμΈ κ³λ¨λΆν° μμλλ‘ κ° κ³λ¨μ μ°μ¬ μλ μ μκ° μ£Όμ΄μ§λ€. κ³λ¨μ κ°μλ 300μ΄νμ μμ°μμ΄κ³ , κ³λ¨μ μ°μ¬ μλ μ μλ 10,000μ΄νμ μμ°μμ΄λ€.
μΆλ ₯
첫째 μ€μ κ³λ¨ μ€λ₯΄κΈ° κ²μμμ μ»μ μ μλ μ΄ μ μμ μ΅λκ°μ μΆλ ₯νλ€.
μμ μ λ ₯1
6
10
20
15
25
10
20
μμ μΆλ ₯1
75
μκ°
νμ¬ nλ²μ§Έ κ³λ¨μ μλ€κ³ ν λ, μ΅λκ°μ ꡬνλ€κ³ νλ€λ©΄
1) t(n)+t(n-1),
2) t(n)+t(n-2)μ΄λ€.
κ·Έλ°λ° λ¬Έμ μμ μ°μν΄μ μΈ κ³λ¨μ λ°μΌλ©΄ μλλ€κ³ νμμΌλ―λ‘ 1)μ κ²½μ°μλ t(n)+t(n-1)+t(n-3)μ΄ λμ΄μΌνλ€.
1) t(n)+t(n-1)+t(n-3)
2) t(n)+t(n-2)
dp[] λ°°μ΄μ λμ΄μ nλ²μ§Έ κ³λ¨μμμ μ΅λκ°μ μ μ₯νλ€. μ΅λκ°μ ꡬν λλ max λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄μ©νμλ€.
β» λμ νλ‘κ·Έλλ°
- μ¬κ· ν¨μμμ λμΌν μ λ ₯μ ν¨μ νΈμΆμ΄ λ°λ³΅μ μΌλ‘ μΌμ΄λ λ κ·Έ κ²°κ³Ό κ°μ μ μ₯ν΄ λκ³ λΆλ¬ μ°λ κ²μ΄λ€.
- μ΅μ΄ μ λ ₯μμ νμλλ λͺ¨λ κ°λ₯ν μ λ ₯μ λν λͺ¨λ κ°μ μ μ₯ν μ μλ λ©λͺ¨λ¦¬κ° μμ΄μΌνλ€. (ν΄λΉλ¬Έμ μ κ²½μ° dp[])
- λ¨μν μ¬κ·μμ μ μ₯λ κ°μ μ°Ύμ보λ κ²λ κ°λ₯νμ§λ§, κ²°κ³Ό κ°μ μμλ₯Ό μ ν΄μ κ³μ°ν μ μλ€.
- n-1μμ λ¬Έμ λ₯Ό ν μ μμΌλ©΄ n μμλ λ¬Έμ λ₯Ό ν μ μλ€. (μνμ κ·λ©λ²)
μμ±ν μ½λ
#include <iostream>
#include <algorithm>
using namespace std;
int n;
int arr[301]; //κ³λ¨ μ μ
int dp[301]; //κ° κ³λ¨κΉμ§μ μ΅λκ°
int main(int argc, const char * argv[]) {
// insert code here...
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n; //κ³λ¨μ κ°μ
for(int i=0; i<n; i++){
cin >> arr[i];
}
dp[0] = arr[0];
dp[1] = max(arr[0]+arr[1], arr[1]);
dp[2] = max(arr[0]+arr[2], arr[1]+arr[2]);
for(int i=3; i<n; i++){
dp[i] = max(arr[i]+dp[i-2], arr[i-1]+arr[i]+dp[i-3]);
}
cout << dp[n-1] << "\n";
return 0;
}
'μκ³ λ¦¬μ¦ > λ¬Έμ νμ΄ Baekjoon' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] μ λ ¬ μκ³ λ¦¬μ¦ - 1083. μνΈ (0) | 2020.02.27 |
---|---|
[λ°±μ€] DFSμ BFS - 2468. μμ μμ(DFS νμ΄ + BFS νμ΄) (0) | 2020.02.26 |
[λ°±μ€] μ λ ¬ - 2947. λ무 μ‘°κ° (0) | 2020.02.24 |
[λ°±μ€] λ°±νΈλνΉ - 13265. μμΉ νκΈ°(λ¬Έμ νΈλ μ€) (0) | 2020.02.24 |
[λ°±μ€] λ°±νΈλνΉ - 1182. λΆλΆμμ΄μ ν© (0) | 2020.02.21 |