문제
알고리즘
- 그래프를 표현한 후 bfs 탐색을 통해 문제를 수행한다.
코드
package level3
import java.util.*
fun main() {
println(Solution().solution(6, arrayOf(intArrayOf(3, 6), intArrayOf(4, 3), intArrayOf(3, 2), intArrayOf(1, 3), intArrayOf(1, 2), intArrayOf(2, 4), intArrayOf(5, 2))))
}
class Solution {
fun solution(n: Int, edge: Array<IntArray>): Int {
var answer : Int = 0
val graph : Array<ArrayList<Int>> = Array(n + 1) { ArrayList<Int>() }
val visited : IntArray = IntArray(n+1){0}
val queue : Queue<Int> = LinkedList<Int>()
edge.forEach {
graph[it[0]].add(it[1])
graph[it[1]].add(it[0])
}
queue.add(1)
visited[1] = 1
while (queue.isNotEmpty()){
val x = queue.poll()
for (i in graph[x]){
if (visited[i] == 0){
visited[i] = visited[x] + 1
queue.add(i)
}
}
}
//가장 먼 노드의 depth
visited.sortDescending()
val depthMax = visited[0]
answer = visited.count { it == depthMax }
return answer
}
}
github
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 1913번(코틀린): 달팽이 (0) | 2022.08.21 |
---|---|
[baekjoon] 백준 1913번(파이썬): 달팽이 (0) | 2022.08.20 |
[baekjoon] 백준 20006번(코틀린): 랭킹전 대기열 (0) | 2022.08.19 |
[baekjoon] 백준 20006번(파이썬): 랭킹전 대기열 (0) | 2022.08.19 |
[baekjoon] 백준 1337번(코틀린): 올바른 배열 (0) | 2022.08.16 |