๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/13382)
< Lab >
๋ฌธ์ ํ์ด
ํ์ฌ ๋ ์ง์์ 3์ผ ์ด์ ๊ฐ์ ํ์ธํ๋ฉฐ ์์ฌ ๋ฐฉ๋ฌธ ํ๋ฅ ํฉ์ ์ต๋๊ฐ์ ๊ตฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class _13382_ { // Lab
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int t = Integer.parseInt(bf.readLine());
for (int i = 0; i < t; i++) {
int n = Integer.parseInt(bf.readLine());
double arr[] = new double[n];
double dp[] = new double[n];
st = new StringTokenizer(bf.readLine());
for (int j = 0; j < n; j++) {
arr[j] = Double.parseDouble(st.nextToken());
dp[j] = arr[j];
}
double result = 0.0;
for (int j = 0; j < n; j++) {
for (int k = 0; k < j - 2; k++) {
dp[j] = Math.max(dp[j], dp[k] + arr[j]);
}
result = Math.max(result, dp[j]);
}
bw.write(String.format("%.1f", result) + "\n");
}
bw.flush();
}
}
๋ณ์)
t : ํ ์คํธ ์ผ์ด์ค ๊ฐ์
n : ๋ ์ง ์
arr : ๊ฐ ๋ ์ง์ ๋ฐฉ๋ฌธ ํ๋ฅ
dp : ๊ฐ ๋ ์ง์ ์ต๋ ํ๋ฅ ํฉ
result : ์ต๋ ํ๋ฅ ํฉ
ํ ์คํธ ์ผ์ด์ค ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ํ ์คํธ ์ผ์ด์ค ๊ฐ์๋งํผ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ๋ ์ง ์ ์ ๋ ฅ
2) ๋ ์ง ์๋งํผ ๊ฐ ๋ ์ง์ ๋ฐฉ๋ฌธ ํ๋ฅ ์ ์ ๋ ฅ๋ฐ์ arr๊ณผ dp ๋ฐฐ์ด์ ์ ์ฅ
3) ๊ฐ ๋ ์ง๋ฅผ ํ์ํ๋ฉฐ (3์ผ ์ด์ ๊ฐ๋ค + ํ์ฌ ๋ ์ง์ ํ๋ฅ ์ ๋ํ ๊ฐ), (ํ์ฌ๊น์ง ํ๋ฅ ํฉ ์ต๋๊ฐ)์ ๋น๊ตํ์ฌ ์ต๋๊ฐ์ผ๋ก ์ ๋ฐ์ดํธํ๋ค.
4) dp๋ฅผ ํ์ํ๋ฉฐ ์ต๋๊ฐ์ผ๋ก result๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
5) ์์ ์ฒซ์งธ ์๋ฆฌ๊น์ง ๋ฐ์ฌ๋ฆผ ํ ๊ฐ์ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 6754_Bridge transport (0) | 2026.04.22 |
|---|---|
| [Baekjoon] 27137_Square Designs (0) | 2026.04.21 |
| [Baekjoon] 9354_It Is Cold (0) | 2026.04.10 |
| [Baekjoon] 26934_The Bus Card (0) | 2026.04.09 |
| [Baekjoon] 27041_Leapcow (0) | 2026.04.08 |