취준생의 코딩테스트 연습기

[프로그래머스] 네트워크 / 파이썬(python) 본문

코딩테스트/프로그래머스

[프로그래머스] 네트워크 / 파이썬(python)

Jiwon_C 2021. 5. 27. 02:30

# 문제 링크

https://programmers.co.kr/learn/courses/30/lessons/43162

 

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

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

programmers.co.kr

# Soultion

DFS를 이용하여 문제를 해결했다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def dfs(x,computers):
    computers[x][x]=2 #들린거 표시
    for i in range(len(computers[x])):
        if computers[x][i]==1 and computers[i][i]!=2# 처음 들리는 곳이면
            dfs(i,computers)
    
    
def solution(n, computers):
    answer = 0
 
    
    for i in range(n):
        if computers[i][i]==1#처음 들리는 곳
            dfs(i,computers)
            answer+=1
    return answer
cs
 

12. n개의 컴퓨터를 모두 비교

13. 만약 처음 들리는 곳이면 dfs()함수를 불러와서 더 깊이 들어간다.

2. 방문 표시

3. x 컴퓨터와 연결된 컴퓨터를 찾아 그 컴퓨터를 처음들리면 다시 dfs를 호출해준다.

Comments