C - 321-like Searcher 解説 by cirno3153


ソートせず、直接全列挙する方針を紹介します。

import java.util.*
fun main() {
  Scanner(System.`in`).use { sc ->
    val K = sc.nextInt() - 1
    val ans = MutableList(9) { ('1' + it).toString()} // 最初は"1", "2", ..., "9"
    repeat(K) {for (v in '0' until ans[it].last()) ans.add(ans[it] + v)} // 与えられた数の末尾に、条件を満たす数を結合する
    println(ans[K]) // ansは昇順に値が入っている
  }
}

ansは、321-like Numberを昇順に並べたものが入っています。 従って、ans[K]がそのまま答えになります。

投稿日時:
最終更新: