백준 2798 c++

magicdrill·2024년 3월 15일
0

백준 문제풀이

목록 보기
153/656

백준 2798 c++

#include <iostream>
using namespace std;

int input(int lower, int upper);
void int_array_input(int* array, int size);
void card_bruteforce(int* card, int card_N, int target);

int main(void)
{
	int N, M;
	int* card;

	N = input(3, 100);
	M = input(10, 300000);
	card = new int[N];
	int_array_input(card, N);
	card_bruteforce(card, N, M);

	return 0;
}

int input(int lower, int upper)
{
	int A;

	while (1)
	{
		cin >> A;
		if (A >= lower && A <= upper)
		{
			break;
		}
		else
		{
			;
		}
	}

	return A;
}

void int_array_input(int* array, int size)
{
	int i;

	for (i = 0; i < size; i++)
	{
		array[i] = input(1, 100000);
	}

	return;
}

void card_bruteforce(int* card, int card_N, int target)
{
	int i, j, k;
	int sum, temp;
	int closest_sum = 0;

	for (i = 0; i < card_N; i++)
	{
		for (j = 0; j < card_N; j++)
		{
			for (k = 0; k < card_N; k++)
			{
				if (i != j && j != k && k != i)
				{
					sum = card[i] + card[j] + card[k];
					if (sum <= target && sum > closest_sum)
					{
						closest_sum = sum;
					}
					else
					{
						;
					}
				}
				else
				{
					;
				}
			}
		}
	}
	cout << closest_sum << endl;

	return;
}

0개의 댓글