본문 바로가기

BFS2

1/1 WIL 1. 알고리즘 관련 공부 이번 주는 공부했던 알고리즘 지식을 정리하려 한다. 예제) 단지 번호 붙이기(DFS) 그림1과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸 다.철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한 다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 그림2는 그림1을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지 에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오. ▣ 입력설명 첫 번째줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25).. 2023. 1. 1.
12/18 WIL 1. 알고리즘 관련 공부 이번 주는 공부했던 알고리즘 지식을 정리하려 한다. BFS(Breadth First Searching) 너비 우선 탐색 너비 우선 탐색으로 상태트리나 다른 그래프에 있어 같은 레벨에 있는 노드를 우선 적으로 탐색하는 알고리즘이다. BFS를 사용할 때는 큐(선입선출) 자료구조를 사용하여 현재 노드를 popleft()하고 현재 노드와 연결된 다음 노드들을 append 한다. DFS()와의 차이점은 DFS는 한 루트(시작 노드부터 끝 레벨의 노드까지)를 중점으로 가지 치기를 하는데 사용한다는 점이다. 반면 BFS() 현재 노드와 가장 가깝게 연결된 다음 노드들을 레벨 별로 묶어서 최단 경로 찾기와 같은 좌표 이동에 주로 사용한다. BFS()는 좌표 관련 문제에서 꽤나 자주 사용하는 편.. 2022. 12. 18.