๋ฐ์ํ
ํ์ด์ฌ... ์ ๋๋ค... ์ธ๋ค์ผ์ ๊ฑฐ์ง๋ง์ด์์ ใ ใ ์ค์ํํธ ์๋๋๋ค.
SKํ๋๋ ์ํ๋ณด๊ธฐ ์ง์ .. ์ฝ 6์๊ฐ์ ์ Swift์ธ์ด ์์๊ฐ ๋ถ๊ฐํ๋ค๋ ํต๋ณด๋ฅผ ๋ฐ์์ด๋ค. ํํ java / js / python๋ง ๋ณด๋๊ตฐ์.. ์ด๋ฒ ์ฑ์ฉ์์๋ ์ ์ธ ์ธ์ด๋ฅผ ๋ค๋ฃจ๋ ์ง๋ฌด์ TO๊ฐ ๋ซ๋๋ด์...? ๋ค์ดํฐ๋ธ๋ฅผ ์์ฐ๋๊ฑด๊ฐ...
๊ทธ๋์ ๋ถ๋ด๋ถ๋ด ํ์ด์ฌ์ผ๋ก ๊ฐ๋จํ๊ฒ๋๋ง ์ํ์ค๋น๊ฒธ ๋ฌธ์ ๋ฅผ ํ์ด๋ดค์ด๋ค. ํํ ์ํด ๋ถํ์ฐ
โซ๏ธ ๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/43162
โซ๏ธ ๋์ ํ์ด
๋ฌธ์ ๋ฅผ ๋ณด์๋ง์ DFS์์ ํ์ ํ๋ค. ํ๋์ ๋ ธ๋๋ก ๋ค์ด๊ฐ์, ๊ฐ์ฅ ๊น์๊ณณ๊น์งํ์ํ๊ณ ๊ทธ ์ฐ๊ฒฐ๋ ๊ฒ๋ค์ count๋ฅผ ์ธ์ด์ฃผ๋ฉด ๋๋ค๊ณ ํ์ ํ๊ธฐ ๋๋ฌธ์ด๋ค! DFS๋ฌธ์ ์ ์ ์์ด๋ผ๊ณ ๋๊ปด์ก๋ค. ์ฌ์ฐ๋๊น ๋ฐ๋ก ๊ตฌํํด๋ฒ๋ฆฌ๊ธฐ
๊ทผ๋ฐ,,, dfs ๋๋ฆด๋ ์๋ก ๊ฐฑ์ ๋๋ computerNum์ ๋๊ฒจ์ฃผ์ด์ผํ๋๋ฐ ์ด๊ธฐ๊ฐ์ ๊ณ์ ๋๊ฒจ์ค์ ์ฌ๊ท ์ ํ์ ๊ฑธ๋ ค์ ์ง์ฆ๋์ ๋ฏธ์ณ๋ฒ๋ฆฌ๋๋ฃจ ์์๋ค ใ ใ ใ ใ ใ ๊ฒฐ๊ตญ ์ปดํจํฐ๋ ์๋ชป์ด์๊ณ ๋ด๋ฌธ์ ์ฟ๋ค^^^ ํ์ด์ฌ ์ํ ๋ป...
โซ๏ธ ์ ๋ต์ฝ๋
def solution(n, computers):
visited = [False] * (n)
answer = 0
# dfs ํจ์
def dfs(computerNumber):
visited[computerNumber] = True
for i in range(n):
if i != computerNumber and computers[computerNumber][i] == 1:
if visited[i] == False:
dfs(i)
# ์ปดํจํฐ ํ๋์ฉ start ์ง์ ์ผ๋ก ๋ค ๋ฐฉ๋ฌธํด์ผํจ
for computerNumber in range(n):
if visited[computerNumber] == False:
dfs(computerNumber)
answer += 1
return answer
๋ฐ์ํ