BFS

· Algorithm
문제 N x M 크기의 직사각형 형태의 미로에 여러 마리의 괴물이 있어 이를 피해 탈출해야 한다. 현재 위치는 (1, 1)이고 미로의 출구는 (N,M)의 위치에 존재하며 한 번에 한 칸씩 이동할 수 있다. 괴물이 있는 부분은 0으로, 괴물이 없는 부분은 1로 표시되어 있다. 미로는 반드시 탈출할 수 있는 형태로 제시된다. 탈출하기 위해 움직여야 하는 최소 칸의 개수를 구하라. 칸을 셀 때는 시작 칸과 마지막 칸을 모두 포함해서 계산한다. 입력 조건) 첫째 줄에 두 정수 N, M(4
· Algorithm
BFS 알고리즘은 너비 우선 탐색이라는 의미를 갖고 있다. 말 그대로 가장 가까운 노드부터 탐색해가면서 탐색 범위를 넓혀 나가는 개념이다. DFS는 가장 깊은 노드까지 탐색하고 되돌아가서 다른 경로를 택하는 방법을 취한 것과는 반대로 동작한다는 뜻이다. BFS는 큐를 사용해서 선입선출 (FIFO) 의 방식을 사용한다. 인접 노드를 큐에 삽입하고 먼저 들어온 노드가 먼저 큐에서 나가게 되면서 인접한 노드부터 차례대로 탐색을 할 수 있는 것이다. BFS의 동작과정은 다음과 같다. BFS 동작과정 1. 탐색을 시작하는 노드를 큐에 삽입하고 방문 처리 한다. 2. 큐에서 가장 앞에 있는 노드를 꺼내서 그 노드의 인접 노드 중 방문하지 않은 노드를 모두 큐에 삽입하고 방문 처리 한다. 3. 과정2를 더 이상 반복..
공대생안씨
'BFS' 태그의 글 목록