일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- 소수판별
- BFS
- 프로그래머스
- 연관관계
- mvc
- python3
- Java
- DP
- 누적합
- 브루투포스
- JPA
- 인프런
- 우선순위큐
- unity
- 1일1솔
- c#
- popleft
- 그리디 알고리즘
- pypy3
- spring
- 백준
- 합 구하기
- Python
- appendleft
- C#강의
- 소수찾기
- LCM
- 파이썬
- 완전탐색
- deque
Archives
- Today
- Total
jae_coding
(백준 그리디 문제풀이) 21758번 꿀 따기 본문
반응형
문제
코드
import sys
input = sys.stdin.readline
n = int(input())
place = list(map(int, input().split()))
sum_place = sum(place)
# bee bee honey
b_b_h = 0
bee = place[0]
for i in range(1, n):
bee += place[i]
first_bee = sum_place - place[0] - place[i] # 첫번째 벌이 먹는 꿀의 양
second_bee = sum_place - bee # 두번째 벌이 먹는 꿀의 양
b_b_h = max(b_b_h, first_bee + second_bee)
# honey bee bee
h_b_b = 0
place.reverse()
bee = place[0]
for j in range(1, n):
bee += place[j]
first_bee = sum_place - place[0] - place[j] # 첫번째 벌이 먹는 꿀의 양
second_bee = sum_place - bee # 두번째 벌이 먹는 꿀의 양
h_b_b = max(h_b_b, first_bee + second_bee)
# bee honey bee
b_h_b = 0
for k in range(1, n):
b_h_b = max(b_h_b, sum_place - place[0] - place[n-1] + place[k])
print(max(b_b_h, b_h_b, h_b_b))
반응형
'알고리즘 문제 > 그리디 문제' 카테고리의 다른 글
(백준 그리디 문제풀이) 21314번 민겸 수 (0) | 2022.07.20 |
---|---|
(백준 그리디 문제풀이) 20365번 블로그2 (0) | 2022.07.20 |
(백준 그리디 문제풀이) 20300번 서강근육맨 (0) | 2022.07.20 |
(백준 그리디 문제풀이) 20115번 에너지 드링크 (0) | 2022.07.20 |
(백준 그리디 문제풀이) 11508번 2+1 세일 (0) | 2022.07.20 |
Comments