- 문제 링크 : boj.kr/31233
- 난이도 : G2
- 태그 : 애드혹
코드
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define INF 0x7FFFFFFF
using namespace std;
using ll = long long;
using ld = long double;
using pii = pair<int,int>;
using pll = pair<ll, ll>;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n;
cin >> n;
vector<int> arr(n);
for(auto &u : arr) cin >> u;
int ans = min(arr[0], arr[1]);
for(int i = 2; i < n; i++) {
int m = min(arr[i], arr[i-1]);
ans = max(ans, m);
if(m == arr[i]) ans = max(ans, min(arr[i-1], arr[i-2]));
else ans = max(ans, min(arr[i], arr[i-2]));
}
cout << ans;
return 0;
}
풀이
$K \geq 4$라면 $K \leq 3$인 조합으로 쪼갤 수 있다. 또한 $K \geq 4$에서 최적이라면 그것을 쪼갠 조합에서도 최적인 경우가 발생한다. 따라서 $K \leq 3$인 경우를 완전탐색으로 구해주면 답을 구할 수 있다.
728x90
'PS' 카테고리의 다른 글
BOJ 23255 : 구름다리 2 (0) | 2024.05.16 |
---|---|
BOJ 2616 : 소형기관차 (1) | 2024.05.15 |
BOJ 17073 : 나무 위의 빗물 (0) | 2024.05.13 |
BOJ 28067 : 기하가 너무 좋아 (0) | 2024.05.12 |
BOJ 2467 : 용액 (0) | 2024.05.11 |