LeetCode 118 Pascal's Triangle Kotlin

: ) YOUNG·2023년 9월 29일
1

알고리즘

목록 보기
264/422
post-thumbnail

leetcode 118
https://leetcode.com/problems/pascals-triangle/

문제



생각하기


  • 이항 계수, 파스칼의 삼각형을 나타내면 되는 문제이다.

  • 메모이제이션을 사용해서 파스칼의 삼각형을 만들어 나간다.


동작



결과


코드


Kotlin


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

0개의 댓글