728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/49189
풀이
해당 문제는 BFS 알고리즘을 이용해 그래프탐색을 진행하는 문제로써 인접한 모든 노드의 탐색 및 거리 측정을 진행해야 한다.
코드
function solution(n, edge) {
const visited = Array.from({ length: n + 1 }, () => false);
const level = Array.from({ length: n + 1 }, () => 0);
const que = [1];
visited[1] = true;
while (que.length > 0) {
const st = que.shift();
for (let temp of edge) {
if (temp[0] === st && !visited[temp[1]]) {
level[temp[1]] = level[st] + 1;
visited[temp[1]] = true;
que.push(temp[1]);
}
else if (temp[1] === st && !visited[temp[0]]) {
level[temp[0]] = level[st] + 1;
visited[temp[0]] = true;
que.push(temp[0]);
}
}
}
const max = Math.max(...level);
return level.filter(e => e === max).length
}
728x90
'코딩 테스트 > 프로그래머스 코딩 테스트 연습' 카테고리의 다른 글
[JS] 섬 연결하기 (0) | 2024.08.12 |
---|---|
[JS] 부대복귀 (0) | 2024.08.07 |
[JS] 연속 펄스 부분 수열의 합 (0) | 2024.08.04 |
[JS] 징검다리 건너기 (0) | 2024.08.01 |
[JS] 불량 사용자 (0) | 2024.07.30 |