해결방법
3개 카드의 값을 합하고, 반복을 계속해서 돌려서 M을 넘지 않는 가장 큰 값을 구한다.
정답 코드
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int N, sum = 0;
int M;
cin >> N >> M;
vector<int> card(N);
for (int i = 0; i < N; i++)
{
cin >> card[i];
}
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 jack = card[i] + card[j] + card[k];
if (jack <= M && jack > sum)
{
sum = jack;
}
}
}
}
cout << sum;
return 0;
}
'코딩테스트' 카테고리의 다른 글
BOJ - 데칼코마니 23841 (0) | 2024.12.15 |
---|---|
BOJ - 너의 평점은 25206 (0) | 2024.12.15 |
BOJ - 학생 인기도 측정 25325 (0) | 2024.12.15 |
BOJ - 2292 벌집 (0) | 2024.12.15 |
BOJ - 네 번째 점 3009 (0) | 2024.12.15 |