Skip to content

Commit

Permalink
solve(programmers): LV3_가장 먼 노드_kt
Browse files Browse the repository at this point in the history
# id: 문제 id를 숫자로 작성
# categories : 해당 문제의 유형을 ,로 구분하여 작성
# tags : 해당 문제의 태그를 ,로 구분하여 작성
# time : 해당 문제 풀이에 걸린 시간을 분단위 숫자로 작성
# try : 해당 문제에 몇번의 시도를 했는지 숫자로 작성
# help: 해당 문제에 외부의 도움을 받았는지 true/false로 작성
# url : 해당 문제의 url을 작성
id: 49189
categories: [BFS]
tags: []
time: 30
try: 1
help: false
url: https://school.programmers.co.kr/learn/courses/30/lessons/49189?language=kotlin
  • Loading branch information
gogumaC committed Aug 18, 2024
1 parent b3bae45 commit e7a3604
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions src/programmers/level_1/BFS/LV3_가장_먼_노드.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import kotlin.collections.ArrayDeque

class Solution {
fun solution(n: Int, edge: Array<IntArray>): Int {
var answer = 0

val graph=mutableMapOf<Int,MutableList<Int>>()

edge.forEach{
val a=it[0]
val b=it[1]
graph[a]=graph[a]?:mutableListOf<Int>()
graph[b]=graph[b]?:mutableListOf<Int>()
graph[a]?.add(b)
graph[b]?.add(a)
}

val q=ArrayDeque<Int>()
val visited=IntArray(n+1){-1}
visited[1]=0
q.add(1)

var maxLength=0
while(q.isNotEmpty()){
var current=q.removeFirst()
graph[current]?.forEach{next->
if(visited[next]<0){
visited[next]=visited[current]+1
q.add(next)
}
}
}
visited.sortDescending()
answer=visited.count{it==visited[0]}
return answer
}
}

0 comments on commit e7a3604

Please sign in to comment.