언젠가는 펼쳐 볼 아카이브

[Programmers] 네트워크 본문

IT/Programmers

[Programmers] 네트워크

개발자희망생고롸파덕 2024. 3. 18. 16:01

사용언어 : 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