문제 : https://www.acmicpc.net/problem/1182
코드 :
#include <iostream>
#include <vector>
using namespace std;
int num[20] = { 0 };
vector<int> temp;
int ncount = 0;
int n, s;
void solution(int index, int sum)
{
//탈출조건
if (index == n)
{
if (sum == s)
{
ncount+=1;
}
return;
}
//다음경우
solution(index + 1, sum + num[index]);
solution(index + 1, sum);
}
int main()
{
cin >> n >> s;
for (int i = 0; i < n; i++)
{
cin >> num[i];
}
solution(0, 0);
if (s == 0) // 공집합일때 도 0임으로 이를 빼준다. 문제가 조금 애매모호함... 공집합 제외라는 말이 없음..
{
ncount -= 1;
}
cout << ncount;
return 0;
}
'algorithm > ACMICPC' 카테고리의 다른 글
사다리 조작 - 15684 (0) | 2019.12.08 |
---|---|
퇴사 - 14501 (0) | 2019.12.03 |
암호 만들기 -1759 (0) | 2019.12.03 |
연산자 끼워넣기 (2) - 15658 (0) | 2019.12.03 |
연산자 끼워넣기 - 14888 (0) | 2019.11.25 |
댓글