언젠가는 펼쳐 볼 아카이브
[Programmers] 네트워크 본문
사용언어 : javascript
lv3
문제 풀이 소요 시간 : NaN
타입 : DFS/BFS
#문제

#제출코드
function solution(n, computers) {
let answer = 0;
let visited = [];
//DFS
for(let i=0; i < n; i++){
if(!visited[i]){
dfs(i, visited, computers);
answer++;
}
}
function dfs(x, visited, computers){
visited[x] = true;
for(let y=0; y < computers.length; y++){
if(computers[x][y] === 1 && !visited[y]){
dfs(y, visited, computers)
}
}
}
return answer;
}
dfs로 접근한 건 성공했지만.. "양방향" 연결을 생각하지 못해 1시간 10분이 소요돼서 결국 다른 분들의 풀이를 참고하게 됐다. (여러가지 풀이를 찾아보니 dfs, bfs 둘 다 풀이가 가능한 문제였다)
양방향 연결을 생각하지 못해서 생긴 문제는 중복 개수였는데.. 이 해결법이 너무나 단순하게도 방문 여부를 체크하면 되는거였다.🥺 (lv.3라고 겁먹어서 그런가, 왜 생각해내질 못했는지!)
방문하지 않은 노드들을 체크해 true로 방문 처리 해 중복을 체크해주니 정말 쉽게 문제를 통과할 수 있었다.. 흑흑
'IT > Programmers' 카테고리의 다른 글
[Programmers] 여행경로 (0) | 2024.03.20 |
---|---|
[Programmers] 기능개발 (0) | 2024.03.18 |
[Programmers] 폰켓몬 (0) | 2024.03.11 |
[Programmers] 게임 맵 최단 거리 (0) | 2024.03.11 |
[Programmers] 타겟 넘버 (0) | 2024.03.11 |