목차
https://www.acmicpc.net/problem/2798
코드
#include <iostream>
#include <vector>
using namespace std;
int sum_triple(vector<int> v, int index)
{
return v[index] + v[index+1] + v[index+2];
}
int main()
{
int n, m, answer = -1;
vector<int> cards;
cin >> n >> m;
for(int i=0; i<n; i++)
{
int temp;
cin >> temp;
cards.push_back(temp);
}
//solve
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++)
{
int sum = cards[i] + cards[j] + cards[k];
if(sum <= m && sum > answer)
{
answer = sum;
}
}
}
}
cout << answer;
}
설명
브루트포스 문제는 크게 설명할게 없다.
모든 경우의 수를 다 검사해서 결과를 도출한다는 방식으로 접근하면 되기때문이다.
주어진 카드 N개를 3개씩 조합하는 모든 경우의 수를 검사해서 가장 M 이하에 근사한 값을 도출하면 된다.
'공부 > 백준(C++) - 2022~' 카테고리의 다른 글
백준 7568번: 덩치 [C++] (0) | 2022.01.25 |
---|---|
백준 2231번: 분해합 [C++] (0) | 2022.01.25 |
백준 1002번: 터렛 [C++] (0) | 2022.01.23 |
백준 2447번: 별 찍기-10 [C++] (0) | 2022.01.23 |
백준 10870번: 피보나치 수 5 [C++] (0) | 2022.01.23 |