코딩테스트/programmers (python)
Programmers / 3단계 / [DFS/BFS] 네트워크 / python
seulll
2024. 2. 19. 19:33
코딩테스트 연습 - 네트워크 | 프로그래머스 스쿨 (programmers.co.kr)
나의 풀이
.
모범 답안
DFS 풀이
def solution(n, computers):
answer = 0
visited = [0 for i in range(n)]
def dfs(computers, visited, start):
stack = [start]
while stack:
j = stack.pop()
if visited[j] == 0:
visited[j] = 1
for i in range(0, len(computers)):
if computers[j][i] ==1 and visited[i] == 0:
stack.append(i)
i=0
while 0 in visited:
if visited[i] ==0:
dfs(computers, visited, i)
answer +=1
i+=1
return answer
def solution(n, computers):
def DFS(i):
visited[i] = 1
for a in range(n):
if computers[i][a] and not visited[a]:
DFS(a)
answer = 0
visited = [0 for i in range(len(computers))]
for i in range(n):
if not visited[i]:
DFS(i)
answer += 1
return answer