[백준] JAVA 21758번 꿀 따기
문제 링크: https://www.acmicpc.net/problem/21758
21758번: 꿀 따기
첫 번째 줄에 가능한 최대의 꿀의 양을 출력한다.
www.acmicpc.net
▶ 문제

▶ 해설
총 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
댓글을 사용할 수 없습니다.