BOJ/Swift
[프로그래머스] 가장 먼 노드 Swift
띵지니어
2024. 11. 13. 23:56
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/49189
내 코드
import Foundation
func solution(_ n: Int, _ edge: [[Int]]) -> Int {
var visited: [Bool] = Array(repeating: false, count: n+1)
var graph: [[Int]] = Array(repeating: [], count: n+1)
var result: [Int] = Array(repeating: 0, count: n+1)
var queue: [Int] = []
for i in edge {
graph[i[0]].append(i[1])
graph[i[1]].append(i[0])
}
queue.append(1)
result[1] = 1
while !queue.isEmpty {
let x = queue.removeFirst()
visited[x] = true
for i in graph[x] {
if !visited[i] {
queue.append(i)
visited[i] = true
result[i] = result[x] + 1
}
}
}
let maxValue = result.max()
return result.filter { $0 == maxValue }.count
}
Review
너비 우선 탐색(BFS)으로 탐색하면서, 노드의 거리들을 result 배열에 담아주었습니다.
그 result에서 최댓값을 구한 후, 최댓값들이 모여있는 배열의 수를 리턴해줬습니다.
반응형