๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/4097)
< ์์ต >
๋ฌธ์ ํ์ด
dp๋ฅผ ํ์ฉํ์ฌ ๊ฐ์ฅ ๋ง์ ์์ต์ ์ฌ๋ฆฐ ๊ตฌ๊ฐ์ ์์ต์ ๊ตฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class _4097_ { // ์์ต
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = 0;
while ((n = Integer.parseInt(bf.readLine())) != 0) {
int arr[] = new int[n];
int dp[] = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(bf.readLine());
dp[i] = arr[i];
}
int result = Integer.MIN_VALUE;
for (int i = 1; i < n; i++) {
dp[i] = Math.max(dp[i], dp[i - 1] + arr[i]);
result = Math.max(result, dp[i]);
}
bw.write(result + "\n");
}
bw.flush();
}
}
๋ณ์)
n : ์ผ
arr : ๋งค์ผ๋งค์ผ์ ์์ต
dp : ๋ง์ ์์ต์ ์ฌ๋ฆฐ ๊ตฌ๊ฐ์ ์์ต
result : ๊ฐ์ฅ ๋ง์ ์์ต์ ์ฌ๋ฆฐ ๊ตฌ๊ฐ์ ์์ต
0์ด ์ ๋ ฅ๋๊ธฐ ์ ๊น์ง n์ ์ ๋ ฅ๋ฐ๋๋ค. n๋งํผ ๋งค์ผ๋งค์ผ์ ์์ต์ ์ ๋ ฅ๋ฐ์ arr๊ณผ dp์ ์ ์ฅํ๋ค. ๋งค์ผ๋งค์ผ์ ์ดํด๋ณด๋ฉฐ ํ์ฌ ๊ฐ๊ณผ, ์ ๋ ์ ๊ฐ+ํ์ฌ ๊ฐ ๋ ์ค์ ํฐ ๊ฐ์ผ๋ก ์ ๋ฐ์ดํธํ๋ค. ์ต์ข ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 5953_Profits (0) | 2026.02.10 |
|---|---|
| [Baekjoon] 1699_์ ๊ณฑ์์ ํฉ (0) | 2026.02.09 |
| [Baekjoon] 18353_๋ณ์ฌ ๋ฐฐ์นํ๊ธฐ (0) | 2026.01.29 |
| [Baekjoon] 14501_ํด์ฌ (0) | 2026.01.27 |
| [Baekjoon] 6221_The Bale Tower (1) | 2026.01.26 |