목록전체 글 (78)
몰?.루();
Int에 짝수인지 확인하는 함수를 추가하고 싶을 때 fun Int.isEven(): Boolean { return (this % 2) == 0 } fun main() { println(4.isEven()) // true } 이런 식으로 Int형에 .isEven() 함수를 추가해 쓸 수 있습니다. isEven() 함수가 단순한 1줄짜리 return 함수이므로 코틀린 문법에 의해 좀 더 줄일 수 있습니다. fun Int.isEven() = ((this % 2) == 0) 참고로 이런 기능을 Kotlin의 Extension이라고 하며 Java에는 없는 Kotlin만의 기능입니다. Java에서는 이런 걸 하려면 아예 Integer 클래스를 상속받는 새로운 클래스를 만들어서 isEven() 함수를 그 클래스에 넣..
fun main() { val (n, s) = readln().split(" ").map { it.toInt() } val inputs = readln().split(" ").map { it.toInt() } dfs(null, inputs, n, s, 0) println(answer) } var answer = 0 fun dfs(sum: Int?, inputs: List, n: Int, s: Int, startIndex: Int) { if (sum == s) { answer++ } for (i in startIndex until n) { dfs((sum ?: 0) + inputs[i], inputs, n, s, i + 1) } } 무난한 백트래킹 문제이므로 dfs를 이용해서 풀 수 있습니다. 다만 주의해..
fun main() { val n = readln().toInt() val inputs = readln().split(" ").map { it.toLong() } val arr = ArrayList() for (i in 1 .. n) arr.add(i) if (inputs[0] == 1L) { val answer = IntArray(n) solve1(arr, inputs[1], 0, answer) answer.forEach { print("$it ") } } else { val target = inputs.subList(1, inputs.size).map { it.toInt() }.toIntArray() println(solve2(arr, target, 0, 1)) } } fun solve1(arr: A..