문제

 

풀이

브루트포스 알고리즘인만큼 모든 합을 비교해서 풀었다

#include <iostream>
#include <vector>

using namespace std;

int main() {
	int n, m, sum, answer;
	int min = 300001;
	vector<int> v;

	cin >> n >> m;

	for (int i = 0; i < n; i++) {
		int num;

		cin >> num;
		v.push_back(num);
	}

	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++) {
				sum = v[i] + v[j] + v[k];
				if ((min > m - sum) && (m - sum >= 0)) {
					min = m - sum;
					answer = sum;
				}
			}
		}
	}

	cout << answer;
	
	return 0;
}

+ Recent posts