728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
import java.util.Scanner;
class Solution {
public static int n, k, result;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int tc = 1; tc <= t; tc++) {
n = sc.nextInt();
k = sc.nextInt();
result=0;
int num[] = new int[n];
for (int i = 0; i < n; i++) {
num[i] = sc.nextInt();
}
solution(0, 0, num);
System.out.println("#" + tc + " "+result);
}
}
public static void solution(int depth, int sum, int[] num) {
if (sum > k) { //깊이를 덜 갔는데 초과하면 바로 리턴
return;
}
if (depth == n) { //끝까지 갔는데
if (sum == k) { //합이 k면 결과++
result++;
}
return;
}
solution(depth + 1, sum + num[depth], num); //현재 보는 값 포함
solution(depth + 1, sum, num); //현재 보는 값 포함x
}
}
dfs로 해결했다.
728x90
'SW Expert Academy > SWEA D3' 카테고리의 다른 글
| [SW Expert Academy] 정삼각형 분할 놀이 (D3) (0) | 2024.09.29 |
|---|---|
| [SW Expert Academy] 최장 증가 부분 수열 (D3) (0) | 2024.09.29 |
| [Android Studio/Kotlin] SharedPreferences (0) | 2024.09.29 |
| [SW Expert Academy] 기차 사이의 파리 (D3) (1) | 2024.09.28 |
| [SW Expert Academy] 주혁이의 복권 당첨 (D3) (0) | 2024.09.28 |