너비우선탐색

코테 문제 풀이

[Node.js] 구름톤 챌린지 3주 Day2 풀이 (발전기)

문제 한 변의 길이가 N인 정사각형 마을 M이 있다. r번째 행, c번째 열에 하당하는 칸 Mrc에는 0과 1이 적혀있다. 0이면 아무것도 없는 칸이고 1이면 집이 있는 칸이다. 마을에 있는 집에 전력을 공급하기 위해선 그 집에 발전기를 설치하거나, 상하좌우로 인접한 집 중 하나가 전력을 공급받고 있어야 한다. 마을 M의 모든 집에 전력을 공급할 경우, 발전기의 최소 갯수를 구하여라 코드 const readline = require('readline'); let rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let input = []; rl.on('line', (line) => { input.push(li..

알고리즘, 자료구조

[자료구조-JS] 이진탐색트리 너비우선탐색(BFS) 구현

너비우선탐색이란 무엇인가? 트리나 그래프를 탐색하는 기법 중 하나로써 너비(Breadth)를 우선적으로 탐색하는 방법이다. 너비우선탐색 구현을 위해서 보통 큐(Queue) 자료구조를 이용한다. 너비우선탐색의 동작 루트 노드부터 탐색을 시작한다. 기준 노드에 자식 노드들이 존재한다면 큐에 추가하고, 자기 자신은 큐에서 나온다. 위의 과정을 반복한다. 큐에 아무것도 존재하지 않게 된다면 탐색이 종료된다. 너비우선탐색 주의사항 만약 너비가 넓은 트리나 그래프라면 큐에 저장해야하는 너비 요소들이 많아지므로 공간복잡도가 증가한다. 따라서 너비우선탐색을 효과적으로 사용하기 위해서는 너비가 좁은 트리나 그래프를 대상으로 사용하는 것이 좋다. 구현 // 트리 구현체 class BST { constructor() { t..

2DC
'너비우선탐색' 태그의 글 목록