본문 바로가기

BFS2

네트워크(프로그래머스, Java) 문제링크: https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 | 프로그래머스 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크 programmers.co.kr 알고리즘 설명: 이미지 영역을 찾는 문제는 좌표에서 상하좌우로 .. 2019. 10. 9.
너비 우선 탐색(Breadth-first search, BFS) 너비 우선 탐색이란? 시작 정점에서 인접한 모든 정점들을 우선 탐색하는 방법 OPEN List(검색 가능성이 있는 노드의 집합)는 큐(Queue)를 사용해야지만 레벨 순서대로 접근 가능 출발노드에서 목표노드까지의 최단 길이 경로를 보장한다. 경로가 매우 길 경우, 탐색 가지가 급격히 증가하여 보다 많은 기억 공간이 필요하다. 탐색 지점에서 둥그렇게 탐색을 해나가는 느낌 설명 방문을 체크하는 배열존재 시작노드를 큐에 넣고 탐색시작 이중 반복문을 사용! - 큐 안에 있는 값을 pop하고 pop해서 나온 값의 인접한 노드에 대해서 가져오고 방문한 적 없는 노드에 경우 방문체크해주고 큐안에 노드를 넣어준다. 예시 코드(Java) import java.io.*; import java.util.*; /* 인접 리스.. 2019. 10. 6.