Skip to content

Commit 59fb6f9

Browse files
committed
feat : 2025-09-12 Baekjoon Silver & Gold question solved.
1 parent 057f5eb commit 59fb6f9

3 files changed

Lines changed: 79 additions & 0 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import java.io.BufferedReader;
2+
import java.io.InputStreamReader;
3+
4+
public class Main {
5+
public static void main(String[] args) throws Exception {
6+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
7+
int n = Integer.parseInt(br.readLine().trim());
8+
final int MOD = 10007;
9+
10+
if (n == 1) {
11+
System.out.println(1);
12+
return;
13+
}
14+
15+
int[] dp = new int[n + 1];
16+
dp[1] = 1;
17+
dp[2] = 3;
18+
19+
for (int i = 3; i <= n; i++) {
20+
dp[i] = (dp[i - 1] + 2 * dp[i - 2]) % MOD;
21+
}
22+
23+
System.out.println(dp[n]);
24+
}
25+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import java.io.*;
2+
import java.util.*;
3+
4+
public class Main {
5+
public static void main(String[] args) throws Exception {
6+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
7+
int n = Integer.parseInt(br.readLine().trim());
8+
int[] arr = new int[n];
9+
StringTokenizer st = new StringTokenizer(br.readLine());
10+
for (int i = 0; i < n; i++) arr[i] = Integer.parseInt(st.nextToken());
11+
12+
int cur = arr[0]; // i에서 끝나는 최대 연속합
13+
int ans = arr[0]; // 전체 최대값
14+
for (int i = 1; i < n; i++) {
15+
cur = Math.max(arr[i], cur + arr[i]);
16+
ans = Math.max(ans, cur);
17+
}
18+
System.out.println(ans);
19+
}
20+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import java.io.*;
2+
import java.util.*;
3+
4+
public class Main {
5+
public static void main(String[] args) throws Exception {
6+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
7+
int n = Integer.parseInt(br.readLine().trim());
8+
int[] a = new int[n + 1];
9+
for (int i = 1; i <= n; i++) {
10+
a[i] = Integer.parseInt(br.readLine().trim());
11+
}
12+
13+
if (n == 1) {
14+
System.out.println(a[1]);
15+
return;
16+
}
17+
if (n == 2) {
18+
System.out.println(a[1] + a[2]);
19+
return;
20+
}
21+
22+
int[] dp = new int[n + 1];
23+
dp[1] = a[1];
24+
dp[2] = a[1] + a[2];
25+
26+
for (int i = 3; i <= n; i++) {
27+
dp[i] = Math.max(
28+
dp[i - 1],
29+
Math.max(dp[i - 2] + a[i], dp[i - 3] + a[i - 1] + a[i])
30+
);
31+
}
32+
System.out.println(dp[n]);
33+
}
34+
}

0 commit comments

Comments
 (0)