너비 우선 탐색 & 깊이 우선 탐색, 이진 탐색
·
PS/알고리즘
그래프에서는 모든 정점을 방문해야 할 때가 자주 있다.모든 정점을 방문하는 방법은 다양하지만, 대표적으로 BFS와 DFS 방법을 사용할 수 있다.두 방법은 매우 간단하나, 그래프 알고리즘에서 핵심적인 위치를 차지한다.∴ 두 탐색 방법에 대해 아주 깊은 직관을 가져야 할 필요가 있다.트리에 대해 BFS, DFS 수행루트를 시작으로 탐색을 한다면 `BFS`는 먼저 루트의 자식을 차례로 방문함,다음으로 루트의 자식의 자식, 즉 루트에서 두 개의 간선을 거쳐서 도달할 수 있는 정점을 방문= 루트에서 가까운 거리 순으로 방문`DFS`는 루트의 자식 정점을 하나 방문한 다음 아래로 내려갈 수 있는 곳까지 내려감더 이상 내려갈 수가 없으면 위로 되돌아 오다가 내려갈 곳이 있으면 즉각 내려감 일반적인 그래프 G =(V..
재귀
·
PS/알고리즘
재귀는 큰 문제를 해결하기 위해 동일한 유형의 더 작은 문제로 나누는 방식자기 자신을 호출하여 반복적으로 작은 문제를 해결해 나가며, 궁극적으로 원래 문제를 해결함📌 완전 탐색, DP, 그래프, 트리 순회와 같은 알고리즘 문제를 푸는 데 중요! 구성 요소기저 조건 (Base Case)더 이상 문제를 쪼갤 수 없거나, 답이 명확해지는 종료 조건기저 조건이 없다면, 무한 호출되며 `Recursion Error` 발생재귀 호출 (Recursive Call)문제를 더 작은 문제로 나누고, 이를 해결하기 위해 자기 자신 호출시간 복잡도재귀의 시간복잡도를 구하는 건 어려움. 수학적으로 접근해 엄밀히 구하려면, 실용성이 떨어짐∴ 대략적으로 계산해야 함📌 시간 복잡도 = 재귀 함수 호출 수 X 재귀 함수 당 시간..