[백준] 네 번째 수 (2997)(kotlin)

문제 설명

백준 2997번 문제 링크

입력 및 출력

» 입력

첫째 줄에 상근이가 고른 네 개의 숫자 중 세 개가 주어진다. 이 숫자는 크기 순이 아닐 수도 있고, -100보다 크거나 같고, 100보다 작거나 같은 정수이다.

» 출력

첫째 줄에 네 번째 숫자를 출력한다. 정답이 여러 개일 경우에는 아무거나 출력하면 된다. 또한 정답이 존재하지 않는 경우는 입력으로 주어지지 않는다.

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

입력 출력
4 6 8 10

문제 풀이1

import java.io.BufferedReader
import java.io.InputStreamReader
import kotlin.math.abs

fun main(args: Array<String>) = with(BufferedReader(InputStreamReader(System.`in`))) {
    val nums = readLine()
        .split(" ")
        .map { it.toInt() }
        .sorted()

    val one = abs(nums[1] - nums[0])
    val two = abs(nums[2] - nums[1])

    if (one == two) {
        println(nums[2] + (nums[2] - nums[1]))
    } else {
        val min = Math.min(one, two)

        for(i in 0 until 3) {
            if (i != 2 && nums[i] + min != nums[i + 1]) {
                println(nums[i] + min)
                break
            }
        }
    }
}