본문 바로가기
CodingTest/백준

[c++] 백준 - 2798번: 블랙잭

by Daybreak21 2023. 5. 31.

2798번: 블랙잭 (acmicpc.net)

 

2798번: 블랙잭

첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장

www.acmicpc.net

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
	int N, M, tmp, BJ = 0; cin >> N >> M;
	vector<int> card;
	for (int i = 0; i < N; i++) {
		cin >> tmp;
		card.push_back(tmp);
	}

	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) {
				tmp = card[i] + card[j] + card[k];
				if (tmp <= M && tmp > BJ) BJ = card[i] + card[j] + card[k];
			}
		}
	}
	cout << BJ;

	return 0;
}

벡터를 수업시간에 배워서 연습겸 배열말고 벡터사용해서 풀어봄