-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
DFS -1번문제(아마존)
23.03.02 18:05 작성 조회수 322
0
안녕하세요 교수님
질문은 아래 코드와 함께 표시해 두었습니다.
import java.util.*;
class Main {
static int n;
static int[] graph; //전체집합
static int total=0;
public String DFS(int val, int s) { //graph[0]부터 시작
if(val==n) {
if((total-s) == s)
return "YES"; //이부분에서 RETURN이 제대로 이루어 지지 않는 이유가 궁금합니다.
}
else {
DFS(val+1,s+graph[val]);
DFS(val+1,s);
}
return "NO";
}
public static void main(String[] args) {
Main tree=new Main();
Scanner scanner=new Scanner(System.in);
n=scanner.nextInt();
graph=new int[n];
for(int i=0; i<n; i++) {
graph[i]=scanner.nextInt();
total+=graph[i];
}
System.out.print(tree.DFS(0,graph[0])); //graph[0]부터 시작
}
}
답변을 작성해보세요.
0
김태원
지식공유자2023.03.07
안녕하세요^^
System.out.println(val+" "+s);
코드를 return "NO" 바로 위 라인에서 출력해보세요. 그리고 재귀함수는 return "YES"를 한 번 했다고 호출되어 스택에 대기상태에 있는 모든 재귀가 끝나는 게 아닙니다. 이 문제는 영상의 방법으로 공부하시면 좋겠습니다.
답변 1