잡다한 배똥월드

728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

코딩테스트 연습 - 네트워크

네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있

programmers.co.kr

 

 

 

 

 

class Solution {
    boolean[] check; //다녀갔는지 체크용
    int answer = 0;
    public int solution(int n, int[][] computers) {
        check = new boolean[n];
        
        //아직 방문하지 않은 네트워크는 func함수로 보내기
        for (int i = 0; i < n; i++) {
            if (check[i]) continue;
            answer++; //보낼 때 새로운 네트워크의 시작이라는 뜻으로 answer + 1 하기
            func(n, computers, i);
        }
        return answer;
    }
    
    public void func(int n, int[][] computers, int num){
        for (int i = 0; i < n; i++) {
            if (num == i) continue; //num이랑 i가 같으면 같은 네트워크이기 때문에 pass
            if (check[i]) continue; //check[i]가 true면 방문한 네트워크이기 때문에 pass
            if (computers[num][i] == 0) continue; //computers[num][i]가 0이면 연결되어 있지 않은 네트워크이기 때문에 pass
            check[i] = true; //방문했다고 check[i]는 true로 변경
            func(n, computers, i); 이제 또 i와 연결된 네트워크를 찾기 위해서 함수로 보내기
        }
    }
}​

 

테스트 1 통과 (0.02ms, 75.4MB)
테스트 2 통과 (0.02ms, 73.3MB)
테스트 3 통과 (0.03ms, 76.6MB)
테스트 4 통과 (0.03ms, 66.9MB)
테스트 5 통과 (0.01ms, 75.2MB)
테스트 6 통과 (0.07ms, 76.4MB)
테스트 7 통과 (0.03ms, 75.3MB)
테스트 8 통과 (0.09ms, 70.3MB)
테스트 9 통과 (0.04ms, 80.4MB)
테스트 10 통과 (0.04ms, 74.3MB)
테스트 11 통과 (0.36ms, 75.6MB)
테스트 12 통과 (0.18ms, 75.7MB)
테스트 13 통과 (0.12ms, 72.8MB)

 

 

 

 

 

 

728x90

+ Recent posts