안녕하세요. 개발 중인 정주입니다.
오늘은 "백준 BOJ - 2606 바이러스" 문제를 풀었습니다.
Github
GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘
스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.
github.com
문제 링크
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어
www.acmicpc.net
풀이
이번 문제는 그래프 탐색 문제입니다.
연결되어 있는 노드의 개수를 세면 됩니다.
bfs, dfs 무엇을 사용하든 상관 없습니다.
이 문제는 양방향 그래프라는 점만 주의하시면 될 것 같습니다.
전체 코드
//2606 바이러스
import Foundation
let node = Int(readLine()!)!
let edge = Int(readLine()!)!
var graph: [Int:[Int]] = [:]
var visited: [Int] = []
for i in 1...node {
graph.updateValue([], forKey: i)
}
for _ in 1...edge {
let input = readLine()!.split { $0 == " " }.map { Int(String($0))! }
graph[input[0]]?.append(input[1])
graph[input[1]]?.append(input[0])
}
func dfs(_ node: Int) {
if visited.contains(node) {
return
}
visited.append(node)
for node in graph[node]! {
dfs(node)
}
}
dfs(1)
print(visited.count - 1)
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
안녕하세요. 개발 중인 정주입니다.
오늘은 "백준 BOJ - 2606 바이러스" 문제를 풀었습니다.
Github
GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘
스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.
github.com
문제 링크
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어
www.acmicpc.net
풀이
이번 문제는 그래프 탐색 문제입니다.
연결되어 있는 노드의 개수를 세면 됩니다.
bfs, dfs 무엇을 사용하든 상관 없습니다.
이 문제는 양방향 그래프라는 점만 주의하시면 될 것 같습니다.
전체 코드
//2606 바이러스
import Foundation
let node = Int(readLine()!)!
let edge = Int(readLine()!)!
var graph: [Int:[Int]] = [:]
var visited: [Int] = []
for i in 1...node {
graph.updateValue([], forKey: i)
}
for _ in 1...edge {
let input = readLine()!.split { $0 == " " }.map { Int(String($0))! }
graph[input[0]]?.append(input[1])
graph[input[1]]?.append(input[0])
}
func dfs(_ node: Int) {
if visited.contains(node) {
return
}
visited.append(node)
for node in graph[node]! {
dfs(node)
}
}
dfs(1)
print(visited.count - 1)
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.