728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/43162
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
난이도
LV3
문제 설명
- 컴퓨터 n 개가 주어지고 연결된 컴퓨터의 정보가 주어진다.
- 서로 연결된 컴퓨터끼리는 하나의 네트워크로 본다.
- 총 네트워크의 갯수를 Return 해줘야 한다.
접근법
- dictionary에 해당 컴퓨터 (key)에 대해 연결 된 컴퓨터(value)로 저장한다.
- 모든 컴퓨터를 하나씩 확인하며 방문하지 않았다면 탐색을 위해 DFS를 호출한다.
- DFS 깊이 우선 탐색을 이용해 시작 컴퓨터로 부터 깊이 탐색해 연결된 컴퓨터들을 방문 처리한다.
- DFS는 deque로 구현해 해당 key 컴퓨터에 대한 value 컴퓨터들을 방문 처리 해주고 queue에 추가해준다.
코드
from collections import deque
def solution(n, computers):
answer = 0
visited = []
dic = {i:[] for i in range(n)}
for i in range(len(computers)):
for j in range(len(computers[i])):
if i!=j and computers[i][j] == 1:
dic[i].append(j)
for i in range(n):
if i not in visited:
dfs(i,visited,dic)
answer += 1
return answer
def dfs(start,visited, dic):
q = deque()
q.append(start)
while q:
x = q.pop()
for i in dic[x]:
if i not in visited:
visited.append(i)
q.append(i)
DFS(깊이 우선 탐색) ?
[DFS] 알고리즘 - 깊이 우선 탐색 (DFS)
깊이 우선 탐색 알고리즘 (DFS) 한 루트로 들어가 가장 깊이 들어가서 탐색후 돌아가 다시 다른 루트로 가장 깊이 탐색하는 방식이다. 넓게 탐색하는 것이 아닌 깊이 탐색하는 방식이다. 구현 방
h-castle.tistory.com
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT 길 찾기 게임 by 파이썬 (Python) : 트리 순회 (0) | 2023.07.28 |
---|---|
[프로그래머스] 여행 경로 by 파이썬(Python) : DFS (0) | 2023.07.27 |
[프로그래머스] 가장 먼 노드 by 파이썬(Python) : 그래프 bfs (0) | 2023.07.25 |
[프로그래머스] 2022 KAKAO BLIND RECRUITMENT 파괴되지 않은 건물 by 파이썬 (Python) :누적합 (0) | 2023.07.23 |
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT 문자열 압축 by 파이썬(Python) (0) | 2023.07.22 |