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