[백준] 가장 큰 금민수 (1526)(kotlin)

문제 설명

백준 1526번 문제 링크
풀이 참고

입력 및 출력

» 입력

첫째 줄에 N이 주어진다. N은 4보다 크거나 같고 1,000,000보다 작거나 같은 자연수이다.

» 출력

첫째 줄에 N보다 작거나 같은 금민수 중 가장 큰 것을 출력한다.

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

입력 출력
100 77

문제 풀이1

import kotlin.math.max

var n = 0
var res = 0

fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
    n = readLine().toInt()
    dfs(0)
    println(res)
}

fun dfs(sum: Int) {
    if (sum > n) return
    dfs(sum * 10 + 7)
    dfs(sum * 10 + 4)
    res = max(res, sum)
}