부분집합2 [BOJ] 1182 부분 수열의 합 - JAVA 1. 문제 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오. 2. 풀이 1. 부분집합을 이용했다. 2. 만약 idx가 N이라면(범위를 벗어났다면) 종료한다. 3. 만약 지금까지의 합계+현재idx숫자가 S와 동일하다면 카운트를 +1한다. 4. 부분집합 재귀가 모두 끝났다면 cnt를 출력한다. * 꼭 2번 후에 3번을 체크해.. 코딩테스트/BOJ 2022. 6. 11. 부분집합 부분집합 집합에서 원소를 선택하는 것이다. idx는 뽑으려고 하는 수의 인덱스다. 인덱스가 총 뽑을 수 있는 수의 개수(N)와 동일하면 끝난다. isSelected는 뽑은 수를 저장하는 배열이다. 이 코드에서는 값 없이 뽑은 수의 인덱스만 저장했다. 공집합, 모든 원소를 포함하는 집합도 포함한다. private static void subSet(int idx){ if(idx==N){ for(int i=0;i 공부/ALGORITHM 2022. 4. 8. 이전 1 다음