반응형
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에서 최댓값을 구한 후, 최댓값들이 모여있는 배열의 수를 리턴해줬습니다.
반응형
'BOJ > Swift' 카테고리의 다른 글
백준 3273번 두 수의 합 Swift (3) | 2024.11.14 |
---|---|
백준 3020번 개똥벌레 Swift (0) | 2024.11.08 |
백준 17939번 Gazzzua 파이썬 (0) | 2024.06.03 |
백준 2579번 계단 오르기 Swift (0) | 2024.05.13 |
백준 2609번 최대공약수와 최소공배수 Swift (0) | 2024.04.18 |