알고리즘 2

DFS(깊이 우선 탐색), BFS(너비 우선 탐색)

DFS(Depth-First Search, 깊이 우선 탐색) DFS는 깊이 우선 탐색이라고도 부르며 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘입니다. DFS는 스택 자료구조(혹은 재귀함수)를 이용하며, 구체적인 동작 과정은 다음과 같습니다. 1. 탐색 시작 노드를 스택에 삽입하고 방문 처리를 합니다. 2. 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리합니다. 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드를 꺼냅니다. 3. 더 이상 2번의 과정을 수행할 수 없을 때까지 반복합니다. - C++ 재귀 함수를 통한 간단 DFS 구현 예제 #include using namespace std; bool visted[9]; vector graph..

그리디(Greedy) 알고리즘 & 구현 연습하기 (C++)

그리디 알고리즘 -> 현재 상황에서 지금 당장 좋은 것만 고르는 방법 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력 요구 그리디 알고리즘은 최적의 해를 보장할 수없을 때가 많음 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서 이를 추론할 수 있어야 풀리도록 출제됨 문제 예시 문제1 - 당신은 음식점의 계산을 도와주는 점원입니다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리동전이 무한히 존재한다고 가정합니다. 손님에게 거슬러 주어야 할 돈이 N원일 때 거슬러 주어야 할 동전의 최소 개수를 구하세요. 단, 거슬러 줘야 할 돈 N은 항상 10의 배수입니다. - N은 1,260일 때의 풀이 #include using namespace std; int n = 1260; in..