• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

동전교환문제 dfs 질문입니다.

22.08.09 18:18 작성 조회수 210

0

채점사이트에 dfs 방식으로 풀이후 제출해보았는데 오답처리가 되어 강사님 강의를 확인했는데 Integer[] arr 을 static 처리를 했는지 여부를 제외하고 전부 코드가 같았습니다. 강사님의 코딩을 그대로 클론하여 검사받아도 오류가 나오고 제가 짠 코드로도 오답이 나오는데 혹시 이유를 알 수 있을까요? 코드 첨부하겠습니다.

 

 

package section8;

import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class p05 {
static int n;
static int money;
static int answer = Integer.MAX_VALUE;
public static void DFS(int count, int sum, Integer[] arr){
if(sum > money)return;
if(sum >= answer) return;
if(sum == money){
answer = Math.min(answer,count);
}
else{
for(int i = 0; i<n; i++){
DFS( count+1,sum+arr[i], arr);
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
Integer[] arr = new Integer[n];
for(int i = 0; i<n; i++) arr[i] = sc.nextInt();
money = sc.nextInt();
Arrays.sort(arr, Collections.reverseOrder());
DFS(0,0, arr);
System.out.println(answer);
}
}

답변 1

답변을 작성해보세요.

0

이승재님의 프로필

이승재

질문자

2022.08.11

다음날 다시 혼자서 코드 짜보니깐 정답 나왔습니다!