임준일의 개인 블로그

9. '네트워크' 문제 풀어보기 본문

코팅테스트 공부

9. '네트워크' 문제 풀어보기

임준일 2023. 7. 27. 16:54

이번 문제는 컴퓨터가 연결되어 있는지 확인하고,

네트워크 개수를 return하는 문제이다.

 

그림을 보면 연결되어 있으면 1개로 취급하고,떨어져있으면 1개로 취급한다.

 

이번 문제는 상당히 힘들었다.

 

재귀를 써서 풀어야한다는 건 감을 잡았지만

어떻게 체크할지 고민했다가 검색을 통해 풀 수 있었다.

 

먼저 방문했는지 체크하기 위한 bool 배열을 만들고

크기는 컴퓨터의 개수 만큼인 n개를 선언한다.

 

그 후 반복문을 돌리는데

 

이때 Dfs 함수를 새롭게 만들어 컴퓨터가 서로 연결되어 있는지 확인한다.

 

매개변수는 연결 정보가 담긴 computer, 방문정보가 담긴 visited, 시작 지점인 int 형식의 start를 보낸다.

 

 

Dfs에서도 반복문을 돌리는데 해당 위치값이 1이고, 방문 정보가 false이면 재귀한다.