choiyoujun   2달 전

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

    var count = 0
    for (h in 0 until 3)
        for (m in 0 until 3)
            for (s in 0 until 3) {
                if (h != m && m != s && s != h) {
                    if (time[h] in 1..12) count++
                }
            }

    println(count)
}

<소스1.kotlin>

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

    var count = 0
    for (h in 0 until 3)
        for (m in 0 until 3)
            for (s in 0 until 3) {
                if (h != m && m != s && s != h) {
                    if (time[h] in 1..12 && time[m] in 0..59 && time[s] in 0..59) count++
                }
            }

    println(count)
}

<소스2.kotlin>

소스1과 소스2는 각 9번째의 if문만 다릅니다.

예제에서는 모두 통과하지만, 채점에서는 <소스2>만 통과합니다.

2번소스 9번째 줄은

"시"[1 ~ 12] 숫자인지와 "분과 초"[0 ~ 59] 숫자인지 확인하는 것입니다.

허나 "분과 초"는 "시"를 포함한 주어진 모든 숫자를 포함한 것이므로,

불필요한 조건(&& time[m] in 0..59 && time[s] in 0..59)이라 생각하여 생략했는데

채점에서 틀리다고 나옵니다.

1번 소스의 경우는 어떤 부분 때문에 틀리다고 채점이 되는 걸까요?

startlink   2달 전

문제에 따르면 12:99:99 와 같은 입력이 가능합니다.

choiyoujun   2달 전

@startlink 감사합니다!!

댓글을 작성하려면 로그인해야 합니다.