[백준] 2606 - Swift

이창형·2023년 5월 16일
0

코드

import Foundation

let num = Int(readLine()!)!
let line = Int(readLine()!)!

var grid = [Int:[Int]]()
var visited = Array(repeating:false, count: num+1)
var queue = [1]

for _ in 0..<line {
    let now = readLine()!.split(separator: " ").map{Int(String($0))!}
    let a = now[0]
    let b = now[1]
    
    if grid[a] == nil {
        grid[a] = [b]
    } else {
        grid[a]?.append(b)
    }
    
    if grid[b] == nil {
        grid[b] = [a]
    } else {
        grid[b]?.append(a)
    }
}
var count = 0

while !queue.isEmpty {
    let now = queue.removeFirst()

    for i in grid[now]! {
        if !visited[i] {
            visited[i] = true
            queue.append(i)
            count += 1
        }
    }
}
// -1을 빼준 것은 제일 시작한 컴퓨터는 빼야하기 때문이다.
print(count-1)

회고

  • 기본적인 BFS 문제였다
  • 쉽게 해결했다
profile
iOS Developer

0개의 댓글