[백준] 2798번 블랙잭

2023. 8. 3. 23:11자료구조 및 알고리즘/백준

728x90

4개 이상의 원소가 있을 때 3개를 골라 합을 구현하는 방법을 고민하게 되는 문제. 겹치지 않게 인덱스 처리를 잘 해주면 됨.

#include <iostream>

using namespace std;

int arr[100];
int main(void) {

	cin.tie(0);
	ios::sync_with_stdio(0);

	int n, m;
	cin >> n >> m;

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

	int res = 0; /* 배열로 고칠지 고민 */
	int dist; /*3개의 합과 m의 차*/
	int min_dist=300000;

	for (int i = 0; i < n-2; i++)
	{
		for (int j = i + 1; j < n-1; j++)
		{
			for (int k = j + 1; k < n; k++)
			{
				res = arr[i] + arr[j] + arr[k];
				if (res <= m)
				{
					dist = m - res;
					min_dist = min(dist, min_dist); /* 쓰레기값 안 차게....*/
				
				}
				
			}
		}
	}

	cout << m - min_dist;
}
728x90