[백준] 약속 (1183)(kotlin)

문제 설명

백준 1183번 문제 링크
문제 참고

입력 및 출력

» 입력

첫째 줄에 오민식 그룹의 사람 수 N이 주어진다. N은 10,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 각각의 오민식 그룹 사람의 원래 약속시간과 도착시간이 주어진다. 이 값은 10^9보다 작거나 같은 자연수이다.

» 출력

첫째 줄에 기다리는 시간의 합이 최소인 서로 다른 T의 개수를 출력한다.

예제 입출력(테스트케이스)

입력 출력
1
10 9
1

문제 힌트

오민식 그룹의 사람이 1시간 일찍 도착한다. 1시간 약속을 미루면 기다리는 시간의 값이 0이 된다.

문제 풀이1

import kotlin.math.abs

fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
    val n = readLine().toInt()
    val a = MutableList<Int>(n) { 0 }

    for (i in 0 until n) {
        val (x, y) = readLine().split(" ").map { it.toInt() }
        a[i] = x - y
    }

    a.sort()

    if (n % 2 == 0) println("1")
    else println(abs(a[n / 2] - a[n / 2 - 1]) + 1)
}