티스토리 뷰

problem

문제링크: https://www.acmicpc.net/problem/21758

입력 : N, 각 장소의 꿀의 양

출력 : 최대의 꿀의 양

solution

두 꿀벌의 위치와 벌통의 위치를 3가지로 나눠 각 경우중 가장 큰 값 출력

  1. 벌통이 오른쪽 끝에 있는경우
  2. 벌통이 왼쪽 끝에 있는경우
  3. 벌통이 두 벌 사이에 있는 경우

code

n = int(input())
ans=0
a = list(map(int,input().split()))
s=[]
s.append(a[0])

for i in range(1,n):
    s.append(s[i-1]+a[i])

for i in range(1,n-1):
    ans=max(ans,s[n-2]-a[0]+a[i])

for i in range(1, n - 2):
    ans = max(ans, s[n-1] - a[0] - a[i] + s[n-1] - s[i])

for i in range(1,n-1):
    ans=max(ans,2*s[i-1]+s[n-2]-s[i])
    
print(ans)
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/10   »
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 31
글 보관함