[210605][백준/BOJ] 2798번 블랙잭

KeonWoo Kim·2021년 6월 5일
0

알고리즘

목록 보기
71/84

문제

입출력

풀이

카드의 개수 n이 최대 100의 크기를 가지므로 n^3을 해도 시간제한에 걸리지 않는다.

알고리즘에서 1초란 연산을 1억번 정도 수행할 수 있다는 것을 의미하며
O(n^3)의 시간복잡도를 가져도 100만으로 1초 안에 수행할 수 있다.

따라서 브루트포스(완전탐색)으로 풀 수 있는 문제이다.

코드

#include <bits/stdc++.h>
using namespace std;

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);

	int n, m, sum = 0, ans = 0;
	cin >> n >> m;
	vector<int> V(n);

	for (int i = 0; i < n; ++i)
		cin >> V[i];
	
	for (int i = 0; i < V.size() - 2; ++i)
	{
		for (int j = i + 1; j < V.size() - 1; ++j)
		{
			for (int k = j + 1; k < V.size(); ++k)
			{
				sum = V[i] + V[j] + V[k];
				if (m >= sum && sum >= ans)
					ans = max(ans, sum);
			}
		}
	}
	cout << ans;
}
profile
안녕하세요

0개의 댓글

관련 채용 정보