프로그래머스 | 네트워크 (Python)

2024. 10. 1. 21:51·ALGORITHM
 

프로그래머스

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

programmers.co.kr

 

dfs로 풀어야겠다는 생각은 바로 들었는데 인접리스트랑 dfs 구현 중 자잘한게 생각이 안나서 생각보다 풀이시간이 많이 걸렸다.

 

내 코드

def dfs(graph, start, visited):
    visited.append(start) 
    
    for node in graph[start]:
        if node not in visited:
            dfs(graph, node, visited)
    
    return visited
            

def solution(n, computers):
    answer = 0
    # 인접리스트로 그래프 표현
    graph = {i:[] for i in range(n)}
    
    for i in range(n):
        for j in range(len(computers[i])):
            if (computers[i][j] == 1) and (i != j):
                graph[i].append(j)
    
    # 깊이 우선 알고리즘(dfs)를 통해 연결된 네트워크 수 카운트
    visited = []
    
    # dfs의 결과로 연결된 네트워크가 출력됨
    for i in range(n):
        if i not in visited:
            network = dfs(graph, i, visited)
            answer += 1
    
    return answer
반응형

'ALGORITHM' 카테고리의 다른 글

프로그래머스 | 스택/큐 | 프로세스 (python)  (1) 2024.10.11
프로그래머스 | PCCP 기출 문제 1번 | 동영상 재생기 (Python)  (1) 2024.10.10
프로그래머스 | 키패드 누르기 (Python)  (0) 2024.10.01
프로그래머스 | 스킬트리 (Python)  (0) 2024.10.01
프로그래머스 | 타겟 넘버 (Python)  (0) 2024.10.01
'ALGORITHM' 카테고리의 다른 글
  • 프로그래머스 | 스택/큐 | 프로세스 (python)
  • 프로그래머스 | PCCP 기출 문제 1번 | 동영상 재생기 (Python)
  • 프로그래머스 | 키패드 누르기 (Python)
  • 프로그래머스 | 스킬트리 (Python)
진미
진미
  • 진미
    ABC
    진미
  • 전체
    오늘
    어제
    • 분류 전체보기 (64)
      • PROJECT (3)
      • ALGORITHM (43)
      • STUDY (3)
        • 리액트 (7)
        • 파이썬 (2)
      • 기타 (4)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
    • 설정
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
진미
프로그래머스 | 네트워크 (Python)
상단으로

티스토리툴바