문제링크
import kotlin.math.min
fun main() {
    val bufferedReader = System.`in`.bufferedReader()
    val bufferedWriter = System.out.bufferedWriter()
    val (n, m) = bufferedReader
        .readLine()
        .split(" ")
        .map { it.toInt() }
    val friends = Array(n) { Array(n) { Int.MAX_VALUE / 2 } }
    repeat(n) {
        friends[it][it] = 0
    }
    repeat(m) {
        val (a, b) = bufferedReader
            .readLine()
            .split(" ")
            .map { it.toInt() }
        friends[a - 1][b - 1] = 1
        friends[b - 1][a - 1] = 1
    }
    for (k in 0 until n) {
        for (i in 0 until n) {
            for (j in 0 until n) {
                if (friends[i][k] + friends[k][j] < friends[i][j]) {
                    friends[i][j] = friends[i][k] + friends[k][j]
                }
            }
        }
    }
    var minConnection = Int.MAX_VALUE
    var answer = 0
    friends.forEachIndexed { index, friend ->
        val totalConnection = friend.sumOf { it }
        if (totalConnection < minConnection) {
            minConnection = totalConnection
            answer = index + 1
        }
    }
    bufferedWriter.write("$answer")
    bufferedReader.close()
    bufferedWriter.close()
}

주석 없는 코드를 만들기 위해 노력하는 개발자입니다.
혹시라도 의도가 분명하지 않아보이는 (이해가 되지 않는) 코드가 있으시다면 편하게 답변 달아주시면 정말 감사하겠습니다.