알고리즘

C++ 알고리즘 - 백준 2798 블랙잭

마루설아 2024. 12. 28. 14:37

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

 

#include <iostream>
#include <vector>
#define endl "\n"

using namespace std;

int main(void) {
	// C++ Init
	ios::sync_with_stdio(false);
	cin.tie(NULL);

	int input1, input2, input3;
	int answer = 0;
	vector<int> card;

	cin >> input1 >> input2;

	for (int i = 0; i < input1; i++) {
		cin >> input3;
		card.push_back(input3);
	}

	for (int i = 0; i < card.size() - 2; i++) {
		if (card[i] > input2) continue;

		for (int j = i + 1; j < card.size() - 1; j++) {
			if (card[i] + card[j] > input2) continue;

			for (int k = j + 1; k < card.size(); k++) {
				if (card[i] + card[j] + card[k] > input2) continue;

				else if (card[i] + card[j] + card[k] == input2) {
					cout << input2;
					return 0;
				}

				else {
					if(answer == 0 ) answer = card[i] + card[j] + card[k];
					else {
						if (answer < card[i] + card[j] + card[k])
							answer = card[i] + card[j] + card[k];
					}
				}
			}
		}
	}

	cout << answer;
}