|
์ฝ๋ ์์ฑํ๊ธฐ
def dfs(graph, start):
stack = [start]
while stack:
current = stack.pop()
if not visited[current]:
visited[current] = True
stack.extend(graph[current])
def solution(n, computers):
col = len(computers[0])
row = len(computers)
graph = {i:[] for i in range(n)}
for i in range(row):
for j in range(col):
if computers[i][j] == 1 and i != j:
graph[i] = graph.get(i) + [j]
global visited
visited = [False for i in range(n)]
result = 0
for i in range(n):
if not visited[i]:
result += 1
dfs(graph, i)
return result
n = 3
computers1 = [[1, 1, 0], [1, 1, 0], [0, 0, 1]]
computers2 = [[1, 1, 0], [1, 1, 1], [0, 1, 1]]
print(solution(n, computers2))
Java
๋ณต์ฌ
|
์ฝ๋ ์ค๋ช
ํ๊ธฐ
โข
2์ฐจ์ ๋ฐฐ์ด์ ํํ๋ฅผ ๋์
๋๋ฆฌ ํํ๋ก ๋ฐ๊พธ์ด ์ข๋ dfs์ ์ต์ ํ๋๊ฒ ๋ณ๊ฒฝํด์ฃผ๊ธฐ
โข
dfs๋ฅผ ํ์ฉํ์ฌ ๋ฐฉ๋ฌธ์ง์ ์ ์ฌ๋ถ๋ฅผ ๋ฐ์ ธ ๊ทธ๋ํ ์ํ
โข
์ด ๋ช๋ฒ ํ์ํ๋์ง๋ฅผ ๊ฒฐ๊ณผ๊ฐ์ ์ ์ฅํด ๋ฐํ