leetcode 118
https://leetcode.com/problems/pascals-triangle/
이항 계수, 파스칼의 삼각형을 나타내면 되는 문제이다.
메모이제이션을 사용해서 파스칼의 삼각형을 만들어 나간다.
import java.util.*
class Solution {
// variables
private var N = 0
private lateinit var pascal: Array<IntArray>
private lateinit var ans: MutableList<MutableList<Int>>
fun generate(numRows: Int): List<List<Int>> {
input(numRows)
makePascal()
return ans
} // End of generate()
private fun makePascal() {
for (i in 0 until N) {
pascal[i][0] = 1
ans[i].add(1)
for (j in 1..i) {
pascal[i][j] = (pascal[i - 1][j - 1] + pascal[i - 1][j])
ans[i].add(pascal[i][j])
}
}
} // End of makePascal()
private fun input(n : Int) {
N = n
pascal = Array(N + 1) { IntArray(N + 1) }
ans = ArrayList()
repeat(N) {
ans.add(ArrayList())
}
} // End of input()
} // End of Solution class