-
[백준/BOJ] 10819번 차이를 최대로 (C++)알고리즘 문제풀이/백준 2020. 12. 5. 17:52
next_permutation을 이용해 벡터의 순열을 구한 후, 0부터 v.size() - 1 만큼 연속된 두 원소의 절대값 차를 모두 구해 더한 값의 최대를 찾으면 됩니다.
#include <iostream> #include <vector> #include <algorithm> using namespace std; int n, answer = -1; vector<int> v; int main(void) { ios_base::sync_with_stdio(false); cin.tie(0); cin>>n; for(int i = 0; i < n; i++) { int x; cin>>x; v.push_back(x); } sort(v.begin(), v.end()); do { int sum = 0; for(int i = 0; i < v.size() - 1; i++) { sum += abs(v[i] - v[i + 1]); } answer = max(answer, sum); } while(next_permutation(v.begin(), v.end())); cout<<answer; }
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준/BOJ] 11723번 집합 (C++) (0) 2020.12.07 [백준/BOJ] 6064번 카잉 달력 (C++) (0) 2020.12.07 [백준/BOJ] 14891번 톱니바퀴 (C++) (0) 2020.12.05 [백준/BOJ] 11559번 Puyo Puyo (C++) (0) 2020.12.05 [백준/BOJ] 13335번 트럭 (C++) (0) 2020.12.05