[백준] 10819. 차이를 최대로

고재욱·2021년 10월 4일

Baekjoon

목록 보기
20/35

❓ 문제 ❓
차이를 최대로

💯 문제 풀이💯
브루트포스로 모든 경우의 수를 다 탐색한 후 정답을 찾는다

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int answer = 0;
bool visit[10];
void dfs(vector<int> arr, int cur, int sum, int idx, int depth) {
	if (depth == arr.size()) {
		answer = max(answer, sum);
		return;
	}
	for (int i = 0; i < arr.size(); i++) {
		if (!visit[i]) {
			visit[i] = true;
			dfs(arr, arr[i], sum + abs(cur - arr[i]), i, depth + 1);
			visit[i] = false;
		}
	}
}


int main() {
	int n; cin >> n;
	vector<int> arr(n);
	for (int i = 0; i < n; i++)
		cin >> arr[i];

	for (int i = 0; i < n; i++) {
		visit[i] = true;
		dfs(arr, arr[i], 0, i, 1);
		visit[i] = false;
	}
	cout << answer;
}

0개의 댓글