영벨롭 개발 일지

[백준 BOJ][C++]10819번 차이를 최대로 풀이: std::next_permutation() 본문

알고리즘 문제 풀이/BOJ

[백준 BOJ][C++]10819번 차이를 최대로 풀이: std::next_permutation()

영벨롭 2022. 3. 31. 16:09

https://www.acmicpc.net/problem/10819

 

10819번: 차이를 최대로

첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다.

www.acmicpc.net

 

 

https://iridescent-zeal.tistory.com/97

 

[C++]순열 next_permutation STL 사용하기

 순열(permutation)은 서로 다른 n개의 원소에서 r개를 뽑아 한 줄로 세우는 경우의 수를 표현할 수 있습니다.  C++ STL을 사용하여 순열을 쉽게 표현할 수 있습니다.  헤더파일 #include 기본형 bool next_

iridescent-zeal.tistory.com

 

 

#include<iostream>
#include<algorithm>
#include<array>
#include<vector>
#include<cmath>
#include<cstdlib>

using namespace std;

int main(void) {

	vector<int> arr;
	int N;
	int ans = 0;

	scanf("%d", &N);

	for (int i = 0; i < N; i++) {
		int x;
		scanf("%d", &x);
		arr.push_back(x);
	}

	sort(arr.begin(), arr.end());

	do {
		int sum = 0;

		for (auto it = arr.begin(); it != arr.end() - 1; it++) {
			sum += abs(*(it)-*(it + 1));
		}

		ans = max(ans, sum);
	} while (next_permutation(arr.begin(), arr.end()));

	printf("%d", ans);

	return 0;
}
반응형