c&c++/백준
[BOJ] 10819 - 차이를 최대로 (C++)
코린이예요
2018. 5. 8. 19:21
반응형
1. 알아두어야 할것
이 문제는 다음순열(Next permutation)을 이용하여 풀 수있는 문제이다.
2. 전체 소스
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int gMax=0;
int main(){
int num;
int result;
int sub;
cin >> num;
vector <int> v(num);
for(int i=0; i<num; i++){
cin >> v[i];
}
// 우선 오름차순으로 정렬시켜준다 (selection sort를 사용하였다.)
for(int i=0; i<num; i++){
for(int j=i+1; j<num; j++){
if(v[j] < v[i]){
swap(v[j], v[i]);
}
}
}
do{
sub = 0;
result = 0;
for(int i=0; i<num-1; i++){
sub = v[i] - v[i+1];
if(sub < 0) // 절대 값을 구하기
sub *= -1;
result += sub;
}
if(gMax < result)
gMax = result;
}while(next_permutation(v.begin(), v.end()));
cout << gMax << endl;
}
3. 참고사항
4. 문제
반응형