Skip to content

Commit 636e015

Browse files
authored
Merge pull request #792 from AlgorithmWithGod/lkhyun
[20250901] BOJ / G5 / 꿀 따기 / 이강현
2 parents c247086 + 00027d7 commit 636e015

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
7+
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
8+
static StringTokenizer st;
9+
static int N;
10+
static int[] original;
11+
static long[] leftSum;
12+
static long[] rightSum;
13+
static long total;
14+
15+
public static void main(String[] args) throws IOException {
16+
N = Integer.parseInt(br.readLine());
17+
18+
original = new int[N];
19+
leftSum = new long[N];
20+
rightSum = new long[N];
21+
22+
st = new StringTokenizer(br.readLine());
23+
for (int i = 0; i < N; i++) {
24+
original[i] = Integer.parseInt(st.nextToken());
25+
}
26+
27+
// 왼쪽에서 오른쪽으로
28+
leftSum[0] = original[0];
29+
for (int i = 1; i < N; i++) {
30+
leftSum[i] = leftSum[i-1] + original[i];
31+
}
32+
33+
// 오른쪽에서 왼쪽으로
34+
rightSum[N-1] = original[N-1];
35+
for (int i = N-2; i >= 0; i--) {
36+
rightSum[i] = rightSum[i+1] + original[i];
37+
}
38+
39+
total = leftSum[N-1];
40+
long max = 0;
41+
42+
//벌통이 맨 오른쪽, 벌1이 맨 왼쪽 고정, 벌2 위치 선택
43+
for (int i = 1; i < N-1; i++) {
44+
long bee1 = total - original[0] - original[i];
45+
long bee2 = total - leftSum[i];
46+
max = Math.max(max, bee1 + bee2);
47+
}
48+
49+
//벌통이 맨 왼쪽, 벌1이 맨 오른쪽 고정, 벌2 위치 선택
50+
for (int i = N-2; i > 0; i--) {
51+
long bee1 = total - original[N-1] - original[i];
52+
long bee2 = total - rightSum[i];
53+
max = Math.max(max, bee1 + bee2);
54+
}
55+
56+
//벌1이 맨 왼쪽, 벌2가 맨 오른쪽 고정, 벌통 위치 선택
57+
for (int i = 1; i < N-1; i++) {
58+
long bee1 = leftSum[i] - original[0];
59+
long bee2 = rightSum[i] - original[N-1];
60+
max = Math.max(max, bee1 + bee2);
61+
}
62+
63+
bw.write(max + "");
64+
bw.close();
65+
}
66+
}
67+
```

0 commit comments

Comments
 (0)