๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/13398)
< ์ฐ์ํฉ 2 >
๋ฌธ์ ํ์ด
์ฒ์์๋ ์์ด ๊ฐ ์ค์์ ์์ ์ค ๊ฐ์ฅ ์์ ๊ฐ์ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํํ๋ค. ํ์ง๋ง ์ด๋ ๊ฒ ๊ตฌํํ ๊ฒฝ์ฐ ์ฐ์๋ ๋ช ๊ฐ์ ์๋ฅผ ์ ํํด์ ๊ตฌํ ์ ์๋ ํฉ ์ค ๊ฐ์ฅ ํฐ ํฉ์ ๊ตฌํ ์ ์๋ค.
๊ทธ๋์ ๋ ๋ฒ์งธ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ชจ๋ ์๋ฅผ ํ ๋ฒ์ฉ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ๋ก ๋ฐฐ์ด์ n x n ํฌ๊ธฐ๋ก ๋ง๋ค์ด์ ๊ตฌํํ๋ค. ํ์ง๋ง ์ด ๊ฒฝ์ฐ์๋ n์ ๋ฒ์๊ฐ 1 ์ด์ 100000 ์ดํ์ด๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.
๋ง์ง๋ง์ผ๋ก ๊ตฌํํ ๋ฐฉ๋ฒ์ ๋ฐฐ์ด์ 2 x n ํฌ๊ธฐ๋ก ๋ง๋ค์ด 0๋ฒ์งธ ํ์ ์๋ฅผ ์ ๊ฑฐํ์ง ์์ ๊ฒฝ์ฐ, 1๋ฒ์งธ ํ์ ์๋ฅผ ํ๋ ์ ๊ฑฐํ ๊ฒฝ์ฐ๋ก ๊ตฌํํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class _13398_ { // ์ฐ์ํฉ 2
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(bf.readLine());
int arr[] = new int[n];
int answer[][] = new int[2][n];
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
int num = Integer.parseInt(st.nextToken());
arr[i] = num;
}
int result = arr[0];
answer[0][0] = arr[0];
for (int i = 1; i < n; i++) {
answer[0][i] = Math.max(answer[0][i - 1] + arr[i], arr[i]);
answer[1][i] = Math.max(answer[0][i - 1], answer[1][i - 1] + arr[i]);
result=Math.max(answer[0][i], result);
result=Math.max(answer[1][i], result);
}
System.out.println(result);
}
}
๋ณ์)
n : ์์ด ๊ฐ์
arr : ์์ด
answer : ์ฐ์๋ ๋ช ๊ฐ์ ์๋ฅผ ์ ํํด์ ๊ตฌํ ์ ์๋ ํฉ
result : ์ฐ์๋ ๋ช ๊ฐ์ ์๋ฅผ ์ ํํด์ ๊ตฌํ ์ ์๋ ํฉ ์ค ๊ฐ์ฅ ํฐ ํฉ
์์ด์ ์ ๋ ฅ๋ฐ์ ์ฐ์๋ ๋ช ๊ฐ์ ์๋ฅผ ์ ํํด์ ๊ตฌํ ์ ์๋ ํฉ์ ๊ตฌํ๋ค.
answer์ 0๋ฒ์งธ ํ์๋ ์๋ฅผ ์ ๊ฑฐํ์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ฅํ๊ณ 1๋ฒ์งธ ํ์๋ ์๋ฅผ ํ๋ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ฅํ๋ค. ์ ์ฅํ ๊ฐ ์ค์์ ๊ฐ์ฅ ํฐ ๊ฐ์ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 1092_๋ฐฐ (0) | 2023.12.19 |
---|---|
[Baekjoon] 17609_ํ๋ฌธ (0) | 2023.12.18 |
[Baekjoon] 5582_๊ณตํต ๋ถ๋ถ ๋ฌธ์์ด (0) | 2023.12.14 |
[Baekjoon] 20529_๊ฐ์ฅ ๊ฐ๊น์ด ์ธ ์ฌ๋์ ์ฌ๋ฆฌ์ ๊ฑฐ๋ฆฌ (0) | 2023.12.13 |
[Baekjoon] 16198_์๋์ง ๋ชจ์ผ๊ธฐ (0) | 2023.12.12 |