티스토리 뷰
problem
문제링크: https://www.acmicpc.net/problem/21758
입력 : N, 각 장소의 꿀의 양
출력 : 최대의 꿀의 양
solution
두 꿀벌의 위치와 벌통의 위치를 3가지로 나눠 각 경우중 가장 큰 값 출력
- 벌통이 오른쪽 끝에 있는경우
- 벌통이 왼쪽 끝에 있는경우
- 벌통이 두 벌 사이에 있는 경우
code
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> a;
vector<int> s; //subtotal
int main()
{
int N;
cin >> N;
a.resize(N);
s.resize(N);
for(int i = 0; i < N; i++){
cin >> a[i];
}
s[0] = a[0];
for(int i = 1; i < N; i++){
s[i] = s[i - 1] + a[i];
}
int ans = 0;
for(int i = 1; i < N - 1; i++) ans = max(ans, s[i - 1] - a[0] + a[i]); //벌통이 두 벌 사이에 있을떄
for(int i = 1; i < N - 1; i++) ans = max(ans, (2 * s[N - 1]) - a[0] - a[i] - s[i]); // 벌통이 오른쪽 끝에 있을때
for(int i = 1; i < N - 1; i++) ans = max(ans, 2*(s[i - 1]) + s[N - 2] - s[i]); //나머지
cout << ans;
return 0;
}
'algorithm > 백준' 카테고리의 다른 글
[c++]백준 1916번: 최소비용 구하기 (0) | 2022.01.19 |
---|---|
[c++] 백준 1753번: 최단경로 (0) | 2022.01.16 |
[python] 백준 11726번: 2*n 타일링 (0) | 2021.07.03 |
[C++]백준 1187번: 최소 스패닝 트리 (0) | 2021.06.06 |
[python]백준 2231번: 분해합 (0) | 2021.05.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 2
- 다익스트라
- 꿀따기
- 더하기
- 나머지
- FIBO
- 스택
- 백준
- programmers
- web
- HackCTF
- 21758
- boj
- python
- 파이썬
- 쇠막대기
- forensic
- 카카오 2021 블라인드 테스트
- 괄호
- 피보나치
- openCV
- math
- 7567
- 4
- 👼
- 넓이
- 프로그레머스
- 1
- 직업군 추천
- c++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함