https://www.acmicpc.net/problem/2156
2156λ²: ν¬λμ£Ό μμ
ν¨μ£Όλ ν¬λμ£Ό μμνμ κ°λ€. κ·Έ κ³³μ κ°λλ, ν μ΄λΈ μμ λ€μν ν¬λμ£Όκ° λ€μ΄μλ ν¬λμ£Ό μμ΄ μΌλ ¬λ‘ λμ¬ μμλ€. ν¨μ£Όλ ν¬λμ£Ό μμμ νλ €κ³ νλλ°, μ¬κΈ°μλ λ€μκ³Ό κ°μ λ κ°μ§ κ·
www.acmicpc.net
μ£Όμ΄μ§ λ°°μ΄μμ μ°μν΄μ 3κ°κΉμ§ μ νν μ μκ³ μ΅λκ°μ ꡬνλ λ¬Έμ λ‘ μ΄μ μ νμλ κ³λ¨μ€λ₯΄κΈ°(https://www.acmicpc.net/problem/2579)μ λΉμ·ν λ¬Έμ μ΄λ€. κ³λ¨μ€λ₯΄κΈ°μμλ λμ°© μ§μ μ 무쑰건 μ νν΄μΌ νμ§λ§ ν¬λμ£Ό μμμμλ μκ΄ μλ€. κ·Έλμ μ ννμ§ μλ κ²½μ°λ₯Ό μΆκ°νλ©° κ²½μ°μ μκ° νλ λ λμλ€.
μ΄κΈ°κ° (n = 1, n= 2)
dp[1] = glass[1]
dp[2] = glass[1] + glass[2]
n > 2 μΌλ,
case 1
n- 3 dp |
n-2 |
n-1 μ ν |
n μ ν |
dp[n] = glass[n] + glass[n - 1] + dp[n - 3]
case 2
n- 3 |
n-2 dp |
n-1 |
n μ ν |
dp[n] = glass[n] + dp[n - 2]
case 3
n- 3 |
n- 2 |
n- 1 dp |
n μ νX |
dp[n] = dp[n - 1]
3κ° μ€ μ΅λκ°μ μ ννλ©΄ λλ€.
μ½λ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class WineTasting {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] glass = new int[n + 1];
for(int i = 1; i <= n; i++) {
glass[i] = Integer.parseInt(br.readLine());
}
int[] dp = new int[n + 1];
dp[1] = glass[1];
if(n >= 2) {
dp[2] = glass[1] + glass[2];
}
for(int i = 3; i <= n; i++) {
dp[i] = Math.max(dp[i - 1], Math.max(glass[i - 1] + dp[i - 3], dp[i - 2]) + glass[i]);
}
System.out.println(dp[n]);
}
}
μ λ ₯κ°μΈ nμ΄ 1λΆν°μ΄κΈ° λλ¬Έμ dp[2]μλ 쑰건μ λ¬μμ£Όλ κ²μ μμ§ λ§μμΌ νλ€. 쑰건μ μ λ¬λ©΄ μλ¬κ° λλ€.
κ²°κ³Ό
'Algorithm > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
11404λ² - νλ‘μ΄λ (0) | 2022.04.06 |
---|---|
λ°±μ€ 1780λ² - μ’ μ΄μ κ°μ (0) | 2022.04.03 |
λ°±μ€ 1072λ² - κ²μ (0) | 2022.03.30 |
λ°±μ€ 2805λ² - λ무 μλ₯΄κΈ° (0) | 2022.03.28 |
λ°±μ€ 1149λ² - RGB거리 (0) | 2022.03.14 |