[백준] JAVA 21758번 꿀 따기
문제 링크: https://www.acmicpc.net/problem/21758
▶ 문제
▶ 해설
총 3 가지의 케이스로 분류할 수 있다.
1. 벌벌 ~~꿀, 꿀 ~~ 벌벌
-> 벌 두 마리가 붙어있고, 꿀이 끝에 있을 때
2. 벌 ~ 벌 ~~꿀, 꿀 ~~ 벌 ~ 벌
-> 벌이 붙어 있지 않고 꿀이 끝에 있을 때
3. 벌 ~ 꿀 ~ 벌
-> 벌과 벌 사이에 꿀이 있을 때
import java.util.*;
import java.io.*;
public class Main {
static int n;
static int[] arr;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
arr = new int[n+1];
String[] s = br.readLine().split(" ");
for (int i = 1; i <= n; i++) {
arr[i] = Integer.parseInt(s[i-1]);
}
int temp = 0;
int ans = 0;
// 1. 벌벌 꿀
ans = togetherBee(temp, ans);
// 2. 벌 벌 꿀
ans = fallBee(ans);
// 3. 벌 꿀 벌
int pos = 2;
ans = betweenBee(ans, pos);
System.out.println(ans);
}
private static int fallBee(int ans) {
int temp;
int i = 1;
for (int j = i + 1; j <= n - 1; j++) {
temp = 0;
for (int x = j + 1; x <= n; x++) {
temp += arr[x];
}
for (int x = i + 1; x <= n; x++) {
if (x == j) continue;
temp += arr[x];
}
if (temp > ans) {
ans = temp;
}
}
i = n;
for (int j = i - 1; j >= 2; j--) {
temp = 0;
for (int x = j - 1; x >= 1; x--) {
temp += arr[x];
}
for (int x = i - 1; x >= 1; x--) {
if (x == j) continue;
temp += arr[x];
}
if (temp > ans) {
ans = temp;
}
}
return ans;
}
private static int betweenBee(int ans, int pos) {
int i;
int temp;
while (pos < n) {
temp = 0;
for (i = 2; i <= pos; i++) {
temp += arr[i];
}
for (int j = n - 1; j >= pos; j--) {
temp += arr[j];
}
if (temp > ans) {
ans = temp;
}
pos++;
}
return ans;
}
private static int togetherBee(int temp, int ans) {
for (int i = 3; i <= n; i++) {
temp += arr[i];
}
if (temp > ans) {
ans = temp;
temp = 0;
}
for (int i = n - 2; i >= 1; i--) {
temp += arr[i];
}
if (temp > ans) {
ans = temp;
temp = 0;
}
return ans;
}
}
아쉽게도 55점을 받았다.. 나중에 다시 풀어봐야 할 것 같다.. ㅠㅠ
'Alogorithm > 그리디' 카테고리의 다른 글
백준 1049[자바] java 기타줄 (0) | 2022.05.07 |
---|---|
백준 2212 [자바] java 센서 (0) | 2022.02.17 |
백준 13164 [자바] java 행복 유치원 (0) | 2022.02.04 |
백준 11000 [자바] java 강의실 배정 (0) | 2022.01.05 |
백준 JAVA 21314번 민겸수 (0) | 2021.12.28 |
댓글
이 글 공유하기
다른 글
-
백준 2212 [자바] java 센서
백준 2212 [자바] java 센서
2022.02.17 -
백준 13164 [자바] java 행복 유치원
백준 13164 [자바] java 행복 유치원
2022.02.04 -
백준 11000 [자바] java 강의실 배정
백준 11000 [자바] java 강의실 배정
2022.01.05 -
백준 JAVA 21314번 민겸수
백준 JAVA 21314번 민겸수
2021.12.28