목록DFS (3)
CodeClover
DFS, BFS 문제 유형을 본격적으로 공부하기 전, 재귀 함수에 대한 구조적 이해를 먼저 정리해두고 싶어서 재귀함수 정리 글을 작성했습니다. 지난 글에서는 DFS 구조에서 재귀 함수가 어떻게 작동하는지를 스택 프레임을 통해 정리했다면, 이번에는 재귀함수를 직접 활용해볼 수 있는 대표적인 예제인 팩토리얼과 피보나치 수열을 비교해보며, 재귀 구조의 장점과 단점을 함께 정리해보려고 합니다.

코딩테스트를 준비하며 공부한 내용을 알고리즘 카테고리에 정리하고 있습니다.기록하고 되돌아보는 과정을 통해, 단순히 문제를 푸는 것을 넘어 지식을 완전히 내 것으로 만들기 위해 노력 중입니다.오늘은 BFS, DFS 유형을 본격적으로 공부하기 전에, 그 바탕이 되는 재귀 함수의 구조와 실행 원리를 정리해보려 합니다. ✅ 재귀 함수란?재귀 함수는 자기 자신을 호출하는 함수입니다.DFS가 곧 재귀함수라고 생각할 수 있음 .하지만 무한 호출을 막기 위해 종료 조건(Base Case) 이 반드시 필요합니다.아래 예제 코드에서는 (n == 0) 일 때 함수가 종료(return)되도록 종료 조건을 설정함. 📌 예제 코드 (Java)public class Main { public void DFS(int n) ..

https://www.acmicpc.net/problem/1260📌 문제 탐색하기DFS, BFS 문제로 ,,, 그래프 탐색 문제 입니다. 방문된 점을 출력하라고 했으니 순서가 중요한 문제입니다. 📌 가능한 시간복잡도가능한 시간복잡도는 입력받은 정점의 개수 N ,간선의 개수 M으로 ...정점과 간선을 한번씩 탐색해서 BFS , DFS 모두 동일하게 O(N+M) ,리스트에 간선 정보를 넣고 정렬해야하니까 O(M logM)따라서 가능한 시간복잡도는 모두 더한값 O(N+M) + O(M logM) 입니다. 📌 코드 설계하기그래프는 List> 으로 인접 리스트를 사용하고 DFS는 스택 ,BFS는 큐를 사용해서 구현하면 된다. 📌 정답 코드import java.io.*;import java.util.*;..