Algorithm
Algorithm) Programmers- 네트워크 swift
행복하고 싶은 사람
2022. 11. 30. 13:11
https://school.programmers.co.kr/learn/courses/30/lessons/43162
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
dfs/ bfs문제였습니다
level3 치고는 쉬운 문제네요
for문 돌면서 방문 안한곳이 있으면 방문하고 dfs 시작
dfs가 돌면서 연결되어 있는곳은 모두 방문하니 for문에서 dfs로 들어간 횟수만큼 네트워크가 존재합니다!
import Foundation
func dfs(_ com: Int,_ computers:[[Int]], _ visited: inout [Bool]) {
for i in 0..<computers[com].count {
if visited[i] == false && computers[com][i] == 1 {
visited[i] = true
print(i)
dfs(i, computers, &visited)
}
}
}
func solution(_ n:Int, _ computers:[[Int]]) -> Int {
var visited = [Bool](repeating:false, count: n+1)
var ans = 0
for i in 0..<n {
if visited[i] == false {
visited[i] = true
dfs(i, computers ,&visited)
ans += 1
}
}
return ans
}