bfs로 풀기
def bfs(visited, computer, computers, computer_num):
queue = []
queue.append(computer)
while len(queue) != 0:
from_computer = queue.pop(0)
visited[from_computer] = True
for to_computer in range(computer_num):
if computers[from_computer][to_computer] == 1 and not visited[to_computer]:
queue.append(to_computer)
def solution(computer_num, computers):
connect_num = 0
visited = [False for computer in range(computer_num)]
for computer in range(computer_num):
if not visited[computer]:
print(visited[computer], computer)
bfs(visited, computer, computers, computer_num)
connect_num += 1
print(connect_num)
return connect_num
dfs로 풀기
def dfs(visited, from_computer, computers, computer_num):
visited[from_computer] = True
for to_computer in range(computer_num):
if computers[from_computer][to_computer] == 1 and not visited[to_computer]:
dfs(visited, to_computer, computers, computer_num)
def solution(computer_num, computers):
connect_num = 0
visited = [False for computer in range(computer_num)]
for computer in range(computer_num):
if not visited[computer]:
print(visited[computer], computer)
dfs(visited, computer, computers, computer_num)
connect_num += 1
print(connect_num)
return connect_num
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 문자열 압축 (python) (0) | 2021.07.01 |
---|---|
[프로그래머스] 순위검색 (python) (0) | 2021.06.30 |
[프로그래머스] 소수 찾기 (python) (0) | 2021.06.29 |
[프로그래머스] 단어변환 (python) (0) | 2021.06.27 |
[프로그래머스] 오픈채팅방 (python) (0) | 2021.06.26 |
댓글