너비 우선 탐색(BFS, Breadth-First Search) - 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회 방법 - 큐를 사용하여 구현됨 A 노드(시작 노드)를 방문한다. (방문한 노드 체크) - 큐에 방문된 노드를 삽입(enqueue)한다. - 초기 상태의 큐에는 시작 노드만이 저장 (초기 큐에서는 시작 노드만 있음) - 즉, A 노드의 이웃 노드를 모두 방문한 다음에 이웃의 이웃들을 방문한다. 큐에서 꺼낸 노드과 인접한 노드들을 모두 차례로 방문한다. - 큐에서 꺼낸 노드를 방문한다. (큐에서 값을 빼서 탐색 시작) - 큐에서 커낸 노드과 인접한 노드들을 모두 방문한다. - 인접한 노드가 없다면 큐의 앞에서 노드를 꺼낸다(dequeue). - 큐에..
Algorithm
단순 순회 알고리즘으로, 풀수 없는 백준 문제가 생겨나서 이진탐색 알고리즘을 복습하게 되었습니다. (1654번) 이진탐색 이란? - 정렬된 배열에서 검색 범위를 줄여 나가면서 검색 값을 찾는 알고리즘. 시간 복잡도 - O(logN) 정렬된 배열의 중간값을 임의로 선택하여 찾고자 하는 키(key) 값과 비교하는 탐색 알고리즘. 중앙값을 기준으로 왼쪽 오른쪽 탐색을 달리한다. 반복, 재귀, STL 이용하여 구현가능 //반복문을 이용한 이진탐색을 이용하여 탐색 bool BinarySearch(int *arr, int len, int key){ int start = 0; int end = len-1; int mid; while(end - start >= 0) { mid = (start + end) / 2; //..