[Programmers][Python] 프로그래머스: 네트워크
1일 1PS 91일차!
📚 문제
[Level 3] - 네트워크
💡 풀이 과정
- BFS, DFS 를 통한 분리 문제이다.
- visited 를 통해 모든 경우의 수에 방문하면서 bfs, dfs 를 사용해 분리한다.
- 전체 경우에 대해서 visited 를 생성한다.
- 전체 경우는 모두 순회한다.
- 현재 i 가 방문되지 않았다면 answer 를 +1 하고 dfs 를 통해 방문가능한 노드를 모두 방문한다.
📌포인트
💻 코드
def solution(n, computers):
answer = 0
visited = [False for _ in range(n)]
for i in range(n):
if visited[i]:
continue
answer += 1
stack = []
stack.append(i)
visited[i] = True
while stack:
node = stack.pop()
for j in range(len(computers[node])):
if computers[node][j] == 1 and not visited[j]:
stack.append(j)
visited[j] = True
return answer
댓글남기기