[백준] 약속 (1183)(kotlin)
문제 설명
입력 및 출력
» 입력
첫째 줄에 오민식 그룹의 사람 수 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)
}