https://school.programmers.co.kr/learn/courses/30/lessons/43162
BFS를 활용하여 해결하였다.
from collections import deque
def solution(n, computers):
def bfs(i, computers, n):
visited[i] = True
q = deque()
q.append(i)
while q:
pop = q.popleft()
visited[pop] = True
for j in range(n):
if computers[pop][j] == 1:
if visited[j] == False:
q.append(j)
answer = 0
visited = [False for _ in range(n)]
for i in range(n):
if visited[i] == False:
bfs(i, computers, n)
answer += 1
return answer
추가 입출력 예
print(solution(3, [[1, 1, 0],
[1, 1, 0],
[0, 0, 1]])) # 2
print(solution(3, [[1, 1, 0],
[1, 1, 1],
[0, 1, 1]])) # 1
print(solution(4, [[1, 1, 1, 0],
[1, 1, 1, 0],
[1, 1, 1, 0],
[0, 0, 0, 1]])) # 2
print(solution(7, [[1, 0, 0, 0, 0, 0, 1],
[0, 1, 1, 0, 1, 0, 0],
[0, 1, 1, 1, 0, 0, 0],
[0, 0, 1, 1, 0, 0, 0],
[0, 1, 0, 0, 1, 1, 0],
[0, 0, 0, 0, 1, 1, 1],
[1, 0, 0, 0, 0, 1, 1]])) # 1
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] / [Level 3] / [Python] 숫자 게임 (0) | 2024.02.16 |
---|---|
[프로그래머스] / [Level 3] / [Python] 단어 변환 (0) | 2024.02.16 |
[프로그래머스] / [Level 3] / [Python] 정수 삼각형 (0) | 2024.02.05 |
[프로그래머스] / [Level 2] / [Python] 두 원 사이의 정수 쌍 (0) | 2024.01.30 |
[프로그래머스] / [Level 2] / [Python] 우박수열 정적분 (0) | 2024.01.29 |