코딩테스트 연습 - 네트워크 | 프로그래머스 스쿨 (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
'코딩테스트 > programmers (python)' 카테고리의 다른 글
Programmers / 2단계 / 뒤에 있는 큰 수 찾기 / python (0) | 2024.02.21 |
---|---|
Programmers / 2단계 / [스택/큐] 주식가격 / python (0) | 2024.02.20 |
Programmers / 2단계 / [힙(Heap)] 더 맵게 / python / (1) | 2024.02.18 |
Programmers / 2단계 / 깊이/너비 우선 탐색(DFS/BFS) / python / (1) | 2024.02.17 |
Programmers / 2단계 / k진수에서 소수 개수 구하기 / python / 2018 KAKAO BLIND RECRUITMENT (0) | 2024.02.17 |