취준/프로그래머스

[프로그래머스 Programmers][Python] 네트워크

puff 2020. 4. 5. 15:49

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

DFS 문제다.

기본적으로 DFS 싫어하기도 하고, 파이썬에서는 dfs로 잘못풀다가는 스택 제한걸려서 터지는게 다반사라서 BFS로 풀다가 안됨.

DFS를 기본적으로 쓰는거 같길래 보고 써봤다. 풀고나서 보니까 다른사람들은 BFS잘만 쓰더라.

 

 

 

from collections import deque

def dfs(v,c, start,n):
    v[start] = True
    for i in range(n):
        if not v[i] and c[start][i] ==1:
            dfs(v,c,i,n)


def solution(n, computers):
    answer = 0
    visited = [False for _ in range(n)]
    
    for i in range(n):
        if not visited[i]:
            answer+=1
            dfs(visited, computers, i, n)

    return answer