Solution#
Memo#
- 그냥 간단한 조합 구현 문제
- cpp는 특징적인건 없고 그냥 재귀로 했다.
fun List<Int>.findLottoCombinations(result: MutableList<Int> = mutableListOf(), index: Int = 0) {
if (result.size == 6) {
println(result.joinToString(" "))
return
}
if (result.size + (size - index) < 6) return
for (i in index until size) {
result.add(this[i])
findLottoCombinations(result, i + 1)
result.removeAt(result.lastIndex)
}
}
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
generateSequence { readLine() }
.takeWhile { it != "0" }
.forEach { line ->
val numbers = line.split(" ").map { it.toInt() }
numbers.drop(1).findLottoCombinations()
println()
}
}
- 확장함수로 구현해두면 코드가 예뻐지는 것 같다.