๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/11055)
< ๊ฐ์ฅ ํฐ ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด >
๋ฌธ์ ํ์ด
๊ฐ์ ์ฐจ๋ก๋๋ก ์ดํด๋ณด๋ฉฐ ์ฆ๊ฐํ๋์ง ํ๋จํ๋ค. ์ฆ๊ฐํ๋ค๋ฉด ํฉ์ด ๋ ํฐ์ง ํ๋จํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class _11055_ { // ๊ฐ์ฅ ํฐ ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด
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 sum[] = new int[n];
st = new StringTokenizer(bf.readLine());
for (int i = 0; i < n; i++) {
int num = Integer.parseInt(st.nextToken());
arr[i] = num;
sum[i] = num;
}
int result = sum[0];
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[i] < arr[j] && sum[i] + arr[j] > sum[j]) {
sum[j] = sum[i] + arr[j];
result = Math.max(sum[j], result);
}
}
}
System.out.println(result);
}
}
๋ณ์)
n : ์์ด์ ํฌ๊ธฐ
arr : ์์ด ๊ฐ
sum : ํฉ
result : ํฉ์ด ๊ฐ์ฅ ํฐ ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด์ ํฉ
์์ด์ ํฌ๊ธฐ n์ ์ ๋ ฅ๋ฐ๋๋ค. ์์ด์ ํฌ๊ธฐ๋งํผ ์์ด ๊ฐ์ ์ ๋ ฅ๋ฐ์ arr๊ณผ sum์ ์ ์ฅํ๋ค. ์ด์ค for๋ฌธ์ ์ฌ์ฉํ์ฌ ์์ด์ ํ์ํ๋ค. ๋ง์ฝ ๋น๊ตํ๋ ๊ฐ์ด ํ์ฌ ๊ฐ๋ณด๋ค ํฌ๊ณ ํฉ๋ ํฌ๋ค๋ฉด ๊ฐ์ ์ ๋ฐ์ดํธํ๋ค.
์ต์ข ํฉ์ด ๊ฐ์ฅ ํฐ ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด์ ํฉ์ ์ถ๋ ฅํ๋ค.
* ์์ด์ ์ฒซ ๋ฒ์งธ ๊ฐ์ด ์ ๋ต์ด ๋ ์ ์์ผ๋ฏ๋ก result๋ฅผ sum[0] ๊ฐ์ผ๋ก ์ด๊ธฐํํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 2824_์ต๋๊ณต์ฝ์ (0) | 2024.05.14 |
---|---|
[Baekjoon] 2800_๊ดํธ ์ ๊ฑฐ (0) | 2024.05.13 |
[Baekjoon] 1051_์ซ์ ์ ์ฌ๊ฐํ (0) | 2024.05.09 |
[Baekjoon] 11502_์ธ ๊ฐ์ ์์ ๋ฌธ์ (0) | 2024.05.08 |
[Baekjoon] 1963_์์ ๊ฒฝ๋ก (0) | 2024.05.07 |