경로 탐색(인접행렬) 방향그래프가 주어지면 1번 정점에서 N번 정점으로 가는 모든 경로의 가지 수를 출력하는 프 로그램을 작성하세요. 아래 그래프에서 1번 정점에서 5번 정점으로 가는 가지 수는 1 2 3 4 5 1 2 5 1 3 4 2 5 1 3 4 5 1 4 2 5 1 4 5 총 6 가지입니다. ▣ 입력설명 첫째 줄에는 정점의 수 N(1
아래 그림과 같은 이진트리에서 루트 노드 1에서 말단노드까지의 길이 중 가장 짧은 길이를 구하는 프로그램을 작성하세요. 각 경로의 길이는 루트노드에서 말단노드까지 가는데 이동하는 횟수를 즉 간선(에지)의 개수를 길이로 하겠습니다. 가장 짧은 길이는 3번 노드까지의 길이인 1이다. import java.util.LinkedList; import java.util.Queue; import Q7.Test10.Main; import Q7.Test10.Node; class Node{ int data; Node lt, rt; public Node(int val) { data = val; lt = rt = null; } } public class Main { Node root; public int BFS(Node r..
아래 그림과 같은 이진트리에서 루트 노드 1에서 말단노드까지의 길이 중 가장 짧은 길이를 구하는 프로그램을 작성하세요. 각 경로의 길이는 루트노드에서 말단노드까지 가는데 이동하는 횟수를 즉 간선(에지)의 개수를 길이로 하겠습니다. 가장 짧은 길이는 3번 노드까지의 길이인 1이다. import Q7.Test9.Main; import Q7.Test9.Node; class Node{ int data; Node lt, rt; public Node(int val) { data = val; lt = rt = null; } } public class Main { Node root; public int DFS(int L, Node root) { if(root.lt == null && root.rt == null) { ..
아래 그림과 같은 이진트리를 레벨탐색 연습하시요. 레벨 탐색 순회 출력 : 1 2 3 4 5 6 7 import java.util.LinkedList; import java.util.Queue; class Node{ int data; Node lt, rt; public Node(int val) { data = val; lt = rt = null; } } public class Main { Node root; public void BFS(Node root) { Queue Q = new LinkedList(); Q.offer(root); int L = 0; while(!Q.isEmpty()) { int len = Q.size(); System.out.print(L+" : "); for(int i = 0; i..
자연수 N이 주어지면 1부터 N까지의 원소를 갖는 집합의 부분집합을 모두 출력하는 프로그램을 작성하세요. * 입력설명 첫 번째 줄에 자연수 N(1
8. 송아지 찾기 1(BFS : 상태트리탐색) * 설명 현수는 송아지를 잃어버렸다. 다행히 송아지에는 위치추적기가 달려 있다. 현수의 위치와 송아지의 위치가 수직선상의 좌표 점으로 주어지면 현수는 현재 위치에서 송아지의 위치까지 다음과 같은 방법으로 이동한다. 송아지는 움직이지 않고 제자리에 있다. 현수는 스카이 콩콩을 타고 가는데 한 번의 점프로 앞으로 1, 뒤로 1, 앞으로 5를 이동할 수 있다. 최소 몇 번의 점프로 현수가 송아지의 위치까지 갈 수 있는지 구하는 프로그램을 작성하세요. * 입력 첫 번째 줄에 현수의 위치 S와 송아지의 위치 E가 주어진다. 직선의 좌표 점은 1부터 10,000까지이다. * 출력 점프의 최소횟수를 구한다. 답은 1이상이며 반드시 존재합니다. * 예시 입력 1 5 14 ..
아래 그림과 같은 이진트리를 전위순회와 후위순회를 연습해보세요. 전위 순회 출력 : 1 2 4 5 3 6 7 중위 순회 출력 : 4 2 5 1 6 3 7 후위 순회 출력 : 4 5 2 6 7 3 1 package Q7.Test5; class Node{ int data; Node lt, rt; public Node(int val) { data = val; lt = rt = null; } } public class Main { Node root; public void DFS(Node root) { if(root==null) { return; }else { System.out.print(root.data+" ");//전위 순회 DFS(root.lt); //System.out.print(root.data+" "..
피보나치 수열을 출력한다. 피보나치 수열이란 앞의 2개의 수를 합하여 다음 숫자가 되는 수열이다. 입력은 피보나치 수열의 총 항의 수 이다. 만약 7이 입력되면 1 1 2 3 5 8 13을 출력하면 된다. * 입력설명 첫 줄에 총 항수 N(3