- νΈλ¦¬
- μΉλ¦°μ΄
- μ΄λΆνμ
- λμ νλ‘κ·Έλλ°
- λ€μ΅μ€νΈλΌ
- λΉνΈλ§΅
- νλ‘κ·Έλλ¨Έμ€
- LCs
- λ°±μλ ν리μ¨λ³΄λ©
- μν°λ
- Union-Find
- μμ½λ
- nestjs
- ν리μ¨λ³΄λ©
- μ¬κ·
- λΉνΈλ§μ€νΉ
- Python
- golang
- μΉ΄μΉ΄μ€2021
- DP
- C++
- js
- DFS
- go
- κ°μ₯κ°κΉμ΄κ³΅ν΅μ‘°μ
- μκ³ λ¦¬μ¦
- μ¬λΌμ΄λ© μλμ°
- λ°±μ€
- BFS
- μΉ΄μΉ΄μ€ μ½ν
- Today
- Total
Hello Ocean! πΌ
[νλ‘κ·Έλλ¨Έμ€/C++] λλμ§ λ³Έλ¬Έ
λ¬Έμ
programmers.co.kr/learn/courses/30/lessons/42897
μ½λ©ν μ€νΈ μ°μ΅ - λλμ§
λλμ΄ μ΄λ λ§μμ νΈ κ³νμ νκ³ μμ΅λλ€. μ΄ λ§μμ λͺ¨λ μ§λ€μ μλ κ·Έλ¦Όκ³Ό κ°μ΄ λκ·Έλκ² λ°°μΉλμ΄ μμ΅λλ€. κ° μ§λ€μ μλ‘ μΈμ ν μ§λ€κ³Ό λ°©λ²μ₯μΉκ° μ°κ²°λμ΄ μκΈ° λλ¬Έμ μΈμ ν
programmers.co.kr
λλμ΄ μ΄λ λ§μμ νΈ κ³νμ νκ³ μμ΅λλ€. μ΄ λ§μμ λͺ¨λ μ§λ€μ μλ κ·Έλ¦Όκ³Ό κ°μ΄ λκ·Έλκ² λ°°μΉλμ΄ μμ΅λλ€.
κ° μ§λ€μ μλ‘ μΈμ ν μ§λ€κ³Ό λ°©λ²μ₯μΉκ° μ°κ²°λμ΄ μκΈ° λλ¬Έμ μΈμ ν λ μ§μ νΈλ©΄ κ²½λ³΄κ° μΈλ¦½λλ€.
κ° μ§μ μλ λμ΄ λ΄κΈ΄ λ°°μ΄ moneyκ° μ£Όμ΄μ§ λ, λλμ΄ νμΉ μ μλ λμ μ΅λκ°μ ꡬν΄λ³΄μ!
μ νμ¬ν
- μ΄ λ§μμ μλ μ§μ 3κ° μ΄μ 1,000,000κ° μ΄νμ λλ€.
- money λ°°μ΄μ κ° μμλ 0 μ΄μ 1,000 μ΄νμΈ μ μμ λλ€.
μ μΆλ ₯ μ
money | return |
[1, 2, 3, 1] | 4 |
νμ΄
DPλ₯Ό νμ©ν΄μ νμ΄νμλ€.
cache[i] : μμμ ~ i κΉμ§ λμμ λ, νμΉ μ μλ μ΅λ money
cache[i] = max (cache[i-1], money[i] + cache[i-2]) λλ,
cache[i] = max (cache[i+1], money[i] + cache[i+2]) λ‘ κ³μ°ν μ μλ€.
λ°λ‘ μμ μ§μ μ ννλλ, νμ¬ μ§κ³Ό κ·Έ μμμ§μ μ ννλλ μ€μ λ ν° κ²μ κ³ λ₯΄λ μ μ΄λ€.
λ¬Έμ 쑰건μ μ§λ€μ΄ λκ·Έλκ² λ°°μΉλμ΄ μλ€κ³ νμΌλ, μ€μ μ½λμμλ μΌμ°¨μ λ°°μ΄ or 벑ν°λ‘ μ¬μ©λλ―λ‘
μ΄ λ¬Έμ λ ν¬κ² μΈ κ°μ§ κ²½μ°λ‘ λλμ΄λ³Ό μ μλ€.
(λ°°μ΄μμμ μμμ κ³Ό λ μ§μ λͺ¨λ νΈ μ μκΈ° λλ¬Έμ΄λ€)
1. 첫λ²μ§Έ μ§μ νΈκ³ , λ§μ§λ§ μ§μ μ ν°λ κ²½μ°
2. 첫λ²μ§Έ μ§μ μνΈκ³ , λ§μ§λ§ μ§μ ν°λ κ²½μ°
3. 첫λ²μ§Έ μ§, λ§μ§λ§ μ§ λͺ¨λ μ ν°λ κ²½μ°
1λ² case (μ²«μ§ O, λ§μ§λ§μ§ X) | 2λ² case (μ²«μ§ X, λ§μ§λ§μ§ O) | 3λ² case (μ²«μ§ X, λ§μ§λ§μ§ X) |
![]() |
![]() |
![]() |
μΈ κ°μ§ case μ€μ μ΅λκ°μ 첫 λ²μ§Έ, λλ²μ§Έ caseμ 9μ΄λ€. λ°λΌμ λ΅μ 9μ΄λ€.
μ½λ
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> money) {
int answer = 0;
int n = money.size();
vector<int> cache(n);
// 무쑰건 μ²«μ§ O, λ§μ§λ§ μ§ X
cache[0] = money[0];
cache[1] = money[0];
for (int i=2;i<n-1;i++){
cache[i] = max(cache[i-1], money[i]+cache[i-2]);
}
answer = *max_element(cache.begin(),cache.end());
// μ²«μ§ X, λ§μ§λ§μ§ 0
fill(cache.begin(),cache.end(),0);
cache[n-1] = money[n-1];
cache[n-2] = money[n-1];
for (int i=n-3;i>0;i--){
cache[i] = max(cache[i+1], money[i]+cache[i+2]);
}
answer = max(answer, *max_element(cache.begin(),cache.end()));
//λλ€ X
fill(cache.begin(),cache.end(),0);
cache[1] = money[1];
for (int i=2;i<n;i++){
cache[i] = max(cache[i-1], money[i]+cache[i-2]);
}
answer = max(answer, *max_element(cache.begin(),cache.end()));
return answer;
}
κ²°κ³Ό
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€/C++] 1937. μμ¬μμ΄ νλ€ (0) | 2021.04.06 |
---|---|
[λ°±μ€/C++] 1753. μ΅λ¨κ²½λ‘ (0) | 2021.04.06 |
[λ°±μ€/C++] 1005. ACM Craft (0) | 2021.03.24 |
[λ°±μ€/C++] 2225. ν©λΆν΄ (0) | 2021.03.24 |
[λ°±μ€/C++] 12865. νλ²ν λ°°λ (0) | 2021.03.14 |