본문 바로가기

알고리즘 문제풀이 입문: 코딩테스트 대비/섹션 7. Recursive, Tree, Graph(DFS,BFS 기초)9

이진트리 순회 (DFS : Depth-First Search) 설명아래 그림과 같은 이진트리를 전위순회와 후위순회를 연습해보세요. 전위순회 출력 : 1 2 4 5 3 6 7 (부모 -> 왼쪽 -> 오른쪽)중위순회 출력 : 4 2 5 1 6 3 7 (왼쪽 -> 부모 -> 오른쪽)후위순회 출력 : 4 5 2 6 7 3 1 (왼쪽 -> 오른쪽 -> 부모) 후위순회를 잘 알아놔야 함 => 병합정렬? 중위순회는 스택 그려가면서 하기 꼭 => 강의 다시 듣고 그려보기 직접 문제 해결 class Node { int data; Node lt,rt; public Node(int val) { data = val; lt = rt = null; }}Node: 각 노드를 나타내는 클래스int data : 노드의 값을 저장Node lt : 노드.. 2024. 4. 29.
피보나치 재귀 (메모이제이션) 설명1) 피보나치 수열을 출력한다. 피보나치 수열이란 앞의 2개의 수를 합하여 다음 숫자가 되는 수열이다.2) 입력은 피보나치 수열의 총 항의 수이다. 만약 7이 입력되면 1 1 2 3 5 8 13을 출력하면 된다. 입력첫 줄에 총 항수 N(3 출력첫 줄에 피보나치 수열을 출력합니다. 예시 입력 1 10 예시 출력 11 1 2 3 5 8 13 21 34 55   문제 해결 피보나치 수열은 1번째와 2번째항이 1이며, 그 이후의 각 항은 바로 앞 두 항의 합으로 구성된 수열이다.1, 1, 2, 3, 5, 8, 13 ... 이런식으로 구성 된다. n이 1과 2일 경우 1을 리턴하고그 이후부터 FIBO(n-2) + FIBO(n-1) 를 반환하는 재귀함수로 풀어보았다. 하지만 피보나치 수열은 n이 커질수록 동일.. 2024. 4. 29.
팩토리얼 설명자연수 N이 입력되면 N!을 구하는 프로그램을 작성하세요. 입력첫 번째 줄에 자연수 N(1 출력첫 번째 줄에 N팩토리얼 값을 출력합니다. 예시 입력 1 5 예시 출력 1120 문제 해결 팩토리얼은 N에 대해 N ×( N −1 )×( N −2 ) ×...×1과 같이 계산되는 것을 말한다. 팩토리얼은 N = 1일 때 1을 반환한다.그리고 그 이후부터 팩토리얼의 정의에 따라, n이 1보다 크면 n에 (n−1)!의 결과를 곱하여 반환하는 과정을 반복하면 된다. 최종 코드 import java.util.Scanner;public class P03_팩토리얼 { public static void main(String[] args) { Scanner in = new Scanner(System.in.. 2024. 4. 29.
반응형