๋ฌธ์ : boj.kr/2156
๋ ์ง: 08/30 (๊ธ)
์ฑ๊ณต์ฌ๋ถ: X





n = 1 or 2์ผ ๋๋ ๋ฌด์กฐ๊ฑด 1์ ๋จน๊ณ 1, 2๋ฅผ ๋จน๋๊ฒ ์ต๋๊ฐ์ด๋ค.
๊ทธ๋ผ ์ง์ง ๋ก์ง์ ์์์ n = 3์ผ ๋๋ถํฐ์ด๋ค. n์ด 3์ผ ๋๋ถํฐ ๋ณด๋ฉด 3๊ฐ์ง์ ๊ฒฝ์ฐ์ ์๋ก ๋๋๋ค.
n์ ๋จน์ง์๊ณ ์ด์ (n-1)๊น์ง ๋จน์ ๊ฒ์ ์ ํํ๊ฑฐ๋, n-2๊น์ง์ ๋จน์ ๊ฒ์ ์ ํํ๊ณ n์ ๋จน๊ฑฐ๋, n-3๊น์ง์ ๋จน์ ๊ฒ์ ์ ํํ๊ณ n-1, n์ ์์ธ์ ๋จน๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์์ผ๋ก ๋ํ๋ด๋ฉด
Math.max(dp[n-1], dp[n-2] + wine[n], dp[n-3] + wine[n-1] + wine[n])
๋ฌธ์ ๊ฐ ๊ณ๋จ ์ค๋ฅด๊ธฐ ๋ฌธ์ ์ ์ ์ฌํด์ dp[n-2] + wine[n], dp[n-3] + wine[n-1] + wine[n] ์์ผ๋ก๋ง ์๊ฐํ๋๋ฐ, ๊ผญ ๋ง์ง๋ง ์์ธ์ ๋จน์ง ์์๋ ์ต๋๊ฐ ์ผ ์ ์๋ค. ์ฐ์ 3์์ ๋จน์ง ๋ชปํ๋ค๋ ์กฐ๊ฑด ๋๋ฌธ์ ๋ง์ง๋ง ์์ธ์ ๋จน๋๋ค๋ ์ ํ์ด ๊ผญ ๊ทธ ์ํฉ์์ ์ต๋๊ฐ์ ๋ณด์ฅํด์ฃผ์ง ์๋๋ค.
์ฝ๋
import java.io.*;
public class Main {
// ์๊ฐ์ ํ 2์ด, ๋ฉ๋ชจ๋ฆฌ์ ํ 128MB
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] wine = new int[n+1];
for (int i = 1; i <= n; i++) wine[i] = Integer.parseInt(br.readLine());
int[] dp = new int[n+1]; dp[0] = 0; dp[1] = wine[1];
if (n >= 2) dp[2] = wine[1] + wine[2];
for (int i = 3; i <= n; i++) {
dp[i] = Math.max(dp[i-2] + wine[i], dp[i-3] + wine[i-1] + wine[i]);
dp[i] = Math.max(dp[i], dp[i-1]);
}
System.out.println(dp[n]);
}
}
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 2565 - ์ ๊น์ค (1) | 2024.09.12 |
|---|---|
| 1561 - ๋์ด ๊ณต์ (2) | 2024.09.09 |
| 1463 - 1๋ก ๋ง๋ค๊ธฐ (1) | 2024.08.29 |
| [swea] 1859. ๋ฐฑ๋ง ์ฅ์ ํ๋ก์ ํธ (1) | 2024.08.28 |
| 2632 - ํผ์ํ๋งค (4) | 2024.08.25 |