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
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 - 예상 대진표 (2단계) (0) | 2022.06.03 |
---|---|
[Java] 프로그래머스 - 게임 맵 최단거리 (2단계) (0) | 2022.05.31 |
[Java] 프로그래머스 - 정수 삼각형 (3단계) (0) | 2022.05.26 |
[Java] 프로그래머스 - 조이스틱 (2단계) (0) | 2022.05.25 |
[Java] 프로그래머스 - 소수 찾기 (2단계) (0) | 2022.05.24 |