Java : 바둑이 승차 (DFS)
-
풀이
-
최대 무게를 넘지 않는 선에서 최대 값을 dfs 돌면서 계속 갱신해준다.
코드
package inflearn;
import java.util.Arrays;
import java.util.Scanner;
public class I0802 {
static int ans = 0, c;
static int[] arr;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
c = sc.nextInt();
int n = sc.nextInt();
arr = new int[n + 1];
for (int i = 1; i <= n; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
int l = 0;
dfs(l, arr[0]);
System.out.println(ans);
}
static void dfs(int level, int data) {
if (c >= data && data > ans) ans = data;
if (level == arr.length - 1) return;
dfs(level + 1, data + arr[level + 1]);
dfs(level + 1, data);
}
}
Author And Source
이 문제에 관하여(Java : 바둑이 승차 (DFS)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@donsco/Java-바둑이-승차-DFS저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)