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

 

프로그래머스

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

programmers.co.kr

문제

백준을 풀면서 자주 나오는 유형인 그래프에서 싸이클 개수를 찾는 문제이다.

BFS를 이용해서 문제없이 풀어주었다.

from collections import deque

def bfs(computer_li, visited, s):
    queue = deque([s])
    visited[s] = True
    while queue:
        c = queue.popleft()
        for i in range(len(visited)):
            if computer_li[c][i] == 1 and visited[i] == False:
                queue.append(i)
                visited[i] = True
    return visited
            
        
def solution(n, computers):
    answer = 0
    visited = [False]*n
    queue = deque([])
    for i in range(n):
        if not visited[i]:
            visited = bfs(computers, visited, i)
            answer += 1
            
    return answer
개발자 성현