이번에 풀어본 문제는
백준 2775번 부녀회장이 될테야 입니다.
import java.io.BufferedReader
import java.io.InputStreamReader
import java.lang.StringBuilder
import kotlin.math.max
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
var tc = br.readLine().toInt()
var maxK = Integer.MIN_VALUE
val list = mutableListOf<Pair<Int, Int>>()
while (tc-- > 0) {
var k = br.readLine().toInt()
var n = br.readLine().toInt()
list.add(k to n)
maxK = max(maxK, k)
}
var dp = Array(maxK + 1) { Array(15) { i -> i } }
for (i in 1..maxK) {
for (j in 1..14) {
dp[i][j] = dp[i][j - 1] + dp[i - 1][j]
}
}
val sb = StringBuilder()
list.forEach { (k, n) ->
sb.append("${dp[k][n]}\n")
}
print(sb.deleteCharAt(sb.length - 1).toString())
}
k와 n이 주어질 때, k층 n호에는 k - 1층의 1호~ n호까지의 사람만큼 들어가 있어야 한다는 조건이 있습니다.
입력된 가장 높은 층수를 구하고, 해당 층 까지의 모든 경우를 구해놓고 출력만 해주었습니다.
코틀린으로 푸는거 생각보다 재밌네요 ㅋㅋㅋㅋ 역시 새로운게 자극제가 되는 것 같습니다!