[백준] 카드놀이 (2511)(kotlin)

문제 설명

백준 2511번 문제 링크

입력 및 출력

» 입력

입력 파일은 두 개의 줄로 이루어진다. 첫 번째 줄에는 A가 늘어놓은 카드의 숫자들이 빈칸을 사이에 두고 순서대로 주어진다. 두 번째 줄에는 B가 늘어놓은 카드의 숫자들이 빈칸을 사이에 두고 순서대로 주어진다.

» 출력

첫 번째 줄에는 게임이 끝난 후, A와 B가 받은 총 승점을 순서대로 빈칸을 사이에 두고 출력한다. 두 번째 줄에는 이긴 사람이 A인지 B인지 결정해서, 이긴 사람을 문자 A 또는 B로 출력한다. 만약 비기는 경우에는 문자 D를 출력한다.

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

입력 출력
4 5 6 7 0 1 2 3 9 8
1 2 3 4 5 6 7 8 9 0
16 13
A

문제 풀이1

import java.io.BufferedReader
import java.io.InputStreamReader

fun main(args: Array<String>) = with(BufferedReader(InputStreamReader(System.`in`))) {
    val a = readLine().replace(" ", "")
    val b = readLine().replace(" ", "")

    var aResult = 0
    var bResult = 0

    for (i in 0..9) {
        when {
            a[i] > b[i] -> aResult += 3
            a[i] < b[i] -> bResult += 3
            else -> {
                aResult += 1
                bResult += 1
            }
        }
    }

    println("$aResult $bResult")

    if (aResult != bResult) {
        println(
            when {
                aResult > bResult -> "A"
                else -> "B"
            }
        )
    } else {
        var isWinner = ""
        for (i in 9 downTo 0) {
            if (a[i] != b[i]) {
                if (a[i] > b[i]) {
                    isWinner = "A"
                    break
                } else {
                    isWinner = "B"
                    break
                }
            }
        }

        if (isWinner != "") {
            println(isWinner)
        } else {
            println("D")
        }
    }
}