프로그래머스

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

programmers.co.kr

✏️ 내가 작성한 코드 - DFS

def dfs(i,n,computers,visit):

    visit[i] = True # 제한사항 : computer[i][i]는 항상 1입니다. -> 따라서 일단 방문처리 해야함.

    for com in range(n):
        if computers[com][i] == 1 and (not visit[com]) : # 방문된 적 없는 연결된 다른 컴퓨터 존재
            dfs(com,n,computers,visit)

def solution(n, computers):
    network_cnt = 0
    visit = [False]*n # 컴퓨터 방문 현황 Fasle로 초기화

    for i in range(n):
        if visit[i] == False: # 방문하지 않은 컴퓨터
            dfs(i,n,computers,visit)
            network_cnt += 1

    return network_cnt

✏️ 내가 작성한 코드 - BFS

from collections import deque
def bfs(n,i,computers,visit):
    q = deque()
    q.append(i)
    visit[i] = True

    while q:
        com = q.popleft()
        for c in range(n):
            if computers[c][com] == 1 and visit[c] == False:
                visit[c] = True
                q.append(c)

def solution(n, computers):
    nexwork_cnt = 0
    visit = [False]*n

    for i in range(n):
        if visit[i] == False:
            bfs(n,i,computers,visit)
            nexwork_cnt += 1

    return nexwork_cnt

✏️ 참고

제한사항 중 computer[i][i]는 항상 1입니다.  이 부분 잘 확인해야 함.

+ Recent posts