728x90
반응형
문제는 간단하다.
배열에서 두개를 뽑아서 M과 같은것을 카운트하는 방식이다.
나는 조합을 이용해서 재귀로 문제를 해결하였다.
Code
#include <iostream>
#include <map>
#include <algorithm>
#include <climits>
#include <string>
#include <vector>
using namespace std;
int n, m;
int k = 2;
int cnt;
vector<int> temp_;
void result(vector<int> &arr)
{
int sum = 0;
for (int i : arr)
{
sum += temp_[i];
}
if (sum == m)
{
cnt++;
}
}
void solve(int start, vector<int>& arr)
{
if (arr.size() == k)
{
result(arr);
return;
}
for (int i = start + 1; i < n; i++)
{
arr.push_back(i);
solve(i, arr);
arr.pop_back();
}
return;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> m;
vector<int> arr;
for (int i = 0; i < n; i++)
{
int temp;
cin >> temp; temp_.push_back(temp);
}
solve(-1, arr);
cout << cnt << "\n";
return 0;
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
[BOJ-3986] C++ 좋은 단어 / 실버4 (0) | 2024.12.12 |
---|---|
[BOJ-1213] C++ 팰린드롬 만들기 / 실버3 (0) | 2024.12.11 |
[프로그래머스 - C++] 야근 지수 (0) | 2024.12.04 |
[종만북 예제 P150] 보글 게임 전체코드 (1) | 2024.12.04 |
[PCCP 기출문제] 1번 / 동영상 재생기 (0) | 2024.11.19 |