백준 10819

HR·2022년 6월 3일
0

알고리즘 문제풀이

목록 보기
39/50

백준 10819 : 차이를 최대로

  1. N이 최대 8이니까 숫자 배열하는 모든 경우를 다 생각해도 8!이다.
  2. 그냥 다 배열해보고 그 때의 결과값을 계산해서 최소값을 구하면 될듯

next_permutation을 사용할 때는 꼭 정렬을 한 뒤 사용해야 한다!

정답 코드

#include <iostream>
#include <algorithm>

using namespace std;

int n, num[9];

int cal(int a[]) {
	int ret=0;
	for(int i=0; i<n-1; i++) {
		ret += abs(num[i]-num[i+1]);
	}
	
	return ret;
}
int main() {	
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin>>n;
	for(int i=0; i<n; i++) {
		cin>>num[i];
	}
	
	sort(num, num+n);

	int ans=0;
	do{
		ans = max(ans, cal(num));
		
	} while(next_permutation(num, num+n));

	cout<<ans<<'\n';

	return 0;
}

0개의 댓글