본문 바로가기
카테고리 없음

[C] 백준 - 10819번: 차이를 최대로

by C0MPAS 2024. 5. 16.

5월 16일(목) - 브루트포스(10819번)

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


최초 생각 정리


문제점


풀이

(풀이출처 -> https://wonsjung.tistory.com/67)

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)

#include <stdio.h>
#include <math.h>

int N, result;

int num[9];
int visited[9];
int rep[9];

int MAX(int x, int y)
{
	return ((x > y) ? (x) : (y));
}

void calculate(int count)
{
	if (count == N)
	{
		int total = 0;
		for (int i = 0; i < N - 1; i++)
		{
			int sum = abs(rep[i] - rep[i + 1]);
			total = total + sum;
		}
		result = MAX(total, result);

		return;
	}

	for (int i = 0; i < N; i++)
	{
		if (!visited[i])
		{
			visited[i] = 1;
			rep[count] = num[i];
			calculate(count + 1);
			visited[i] = 0;
		}
	}
}

int main(void)
{
	scanf("%d", &N);
	for (int i = 0; i < N; i++)
	{
		scanf("%d", &num[i]);
	}
	
	calculate(0);
	printf("%d", result);

	return 0;
}

댓글