728x90
def solution(n, computers):
answer = 0
visited = [False for _ in range(n)]
for i in range(n) :
if visited[i] == False :
dfs(n,computers,visited,i)
answer += 1
return answer
def dfs(n,computers,visited,idx) :
# 방문처리
visited[idx] = True
for i in range(n) :
# 다른 컴퓨터이자 연결된 컴퓨터
if i != idx and computers[idx][i] == 1 :
# 방문을 하지 않은 컴퓨터
if not visited[i] :
dfs(n,computers,visited,i)
풀이 및 회고
일단 따로 분리되어있는 네트워크 갯수를 세는 문제입니다.
1. 방문 배열을 만들어 False 로 초기화 합니다.
2. 컴퓨터를 순회하면서 방문하지 않은 컴퓨터에 탐색을 시작합니다.
3. 방문처리를 해주고 연결되어있는 컴퓨터면 그 컴퓨터에 대해 탐색을 시작합니다.
4. 다 끝나면 +1 을 해줍니다.
728x90
'프로그래머스' 카테고리의 다른 글
프로그래머스 LV 1 최소직사각형 (0) | 2024.07.10 |
---|---|
프로그래머스 LV 3 단어 변환 (0) | 2024.06.28 |
프로그래머스 LV 1 푸드 파이트 대회 (0) | 2024.06.27 |
프로그래머스 LV1 숫자 짝궁 (0) | 2024.06.27 |
프로그래머스 LV2 2 x n 타일링 (0) | 2024.06.26 |