문제
풀이
Boolean 배열 visited를 활용하여 초대 인원을 구하였다. 먼저, 인접리스트를 생성하고 입력받은 친구 관계를 기록한다. 그 후, 1번과 직접 연결된 리스트를 방문 표시하고, 이와 연결된 리스트들의 친구들도 방문 표시를 한다. 방문 배열에서 true로 표시된 개수에서 1(자기 자신)을 뺀 값이 초대할 친구의 수가 된다.
코드
fun main() {
val br = System.`in`.bufferedReader()
val bw = System.out.bufferedWriter()
val num = br.readLine().toInt()
val list = List(num + 1) { mutableListOf<Int>() }
val visited = BooleanArray(num+1)
repeat(br.readLine().toInt()) {
val (a, b) = br.readLine().split(' ').map { it.toInt() }
list[a].add(b)
list[b].add(a)
}
visited[1] = true
for(f in list[1]) {
visited[f] = true
for(next in list[f]) {
if(visited[next]) continue
visited[next] = true
}
}
bw.write("${visited.count { it } - 1}")
bw.flush()
bw.close()
br.close()
}
'알고리즘 > Baekjoon' 카테고리의 다른 글
[백준] 11729번: 하노이 탑 이동 순서 - Kotlin[코틀린] (0) | 2024.01.25 |
---|---|
[백준] 11000번: 강의실 배정 - Kotlin[코틀린] (0) | 2024.01.22 |
[백준] 24511번: queuestack - Kotlin[코틀린] (0) | 2024.01.18 |
[백준] 1644번: 소수의 연속합 - Kotlin[코틀린] (0) | 2024.01.17 |
[백준] 12789번: 도키도키 간식드리미 - Kotlin[코틀린] (0) | 2024.01.16 |