본문 바로가기
728x90
반응형

BFS2

BFS - 너비 우선 탐색 / DFS - 깊이 우선 탐색 너비 우선 탐색(Breadth First Search) / DFS(Depth First Search)은 시작지점부터 갈 수 있는 지점들을 들리면서, 더이상 갈 곳이 없을때까지 반복한 후 종료한다. ex) https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 해당 문제는 이런 모양의 간선과 노드들로 이루어져 있습니다. 1번 컴퓨터에 바이러스가 걸리게 된다면, 1과 2, 3, 5, 6 총 4개의 컴퓨터가 1번 컴퓨터에 의해 바이러스에 감염되면서, 5개의 컴퓨.. 2023. 1. 22.
int[] 활용하기 bfs나 dfs 등 ArrayList나 Queue에 x좌표, y좌표, 크기, 길이 등 여러 가지 값들을 한번에 넣을 때 보통 class Node{ int x, y, price; } 이런 식으로 사용하게 됩니다. 그러나 매번 문제를 풀 때 적어두기 귀찮고, 입력할 값들의 수가 변경할 때, 또 선언해 줘야 하는 귀찮은 문제가 발생하게 됩니다. 그 때 이 방식을 이용하면 간단하게 문제를 풀 수 있습니다. Queue queue = new LinkedList(); queue.add(new int[] {x, y, 0}); 이럴 경우 queue.poll()을 하게 되면 int[]의 형태로 나오게 되고 int[] now = queue.poll(); int nx = now[0]; int ny = now[1]; int p.. 2022. 1. 7.
728x90
반응형