반응형
정렬문제였습니다.
풀이방법
인접한 높이 차이가 최소가 되려면 가장 높이가 높은 통나무 양 옆으로 작은 통나무가 배치되어야 합니다. 또한 이를 직접 배치하지 않고서 알 수 있는 방법은 정렬 후 한 칸 더 건너뛰어 2칸 떨어진 통나무끼리의 높이 차이들 중 최대를 구하면 이는 곳 난이도가 됩니다.
Code
#include <bits/stdc++.h>
using namespace std;
int t;
int main(){
cin >> t;
while(t--){
int n,ans=0;
cin >> n;
vector <int> v(n);
for(int i = 0; i < n; i++) cin >> v[i];
sort(v.begin(),v.end());
for(int i = 0; i < v.size()-2; i++){
ans = max(ans,abs(v[i]-v[i+2]));
}
cout << ans << '\n';
}
}
'Algorithm > Sorting' 카테고리의 다른 글
(C++) - 백준(BOJ) 20207번 : 달력 (0) | 2021.08.16 |
---|---|
(C++) - 프로그래머스(2018 KAKAO BLIND RECRUITMENT[3차]) : 파일명 정렬 (0) | 2021.05.14 |
(C++) - 백준(BOJ) 1431번 : 시리얼 번호 답 (0) | 2021.05.01 |
(C++) - 백준(BOJ) 10825번 : 국영수 답 (0) | 2021.05.01 |
(C++) - 백준(BOJ) 1744번 : 수 묶기 (0) | 2021.04.26 |