[백준] 유진수 (1356)(kotlin)

문제 설명

백준 1356번 문제 링크

입력 및 출력

» 입력

첫째 줄에 수 N이 주어진다. 이 수는 2,147,483,647보다작거나 같은 자연수이다.

» 출력

첫째 줄에 N이 유진수이면 YES, 아니면 NO를 출력한다.

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

입력 출력
1236 YES

문제 풀이1

fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
    val n = readLine()
    var check = false

    for (i in 1 until n.length) {
        val a = n.subSequence(0, i)
            .fold(1) { acc, ch ->
                acc * (ch - '0')
            }
        val b = n.subSequence(i, n.length)
            .fold(1) { acc, ch ->
                acc * (ch - '0')
            }

        if (a ==  b) {
            check = true
            break
        }
    }

    if (check) println("YES")
    else println("NO")
}