[ LeetCode ] 119 Pascal's Triangle II

codesver·2023년 7월 4일
0

LeetCode

목록 보기
16/24
post-thumbnail

📌 Problem

위의 그림은 5층짜리 파스칼 삼각형이다. 맨위를 0층이라고 했을 때 주어진 높이의 숫자 배열을 반환하면 된다. 높이 3이 주어지면 [1, 3, 3, 1]을 반환하면 된다.

📌 Solution

파스칼 삼각형을 만드는 방법은 이전 층을 활용하는 것이다. 양끝에 1을 두고 이전 층의 이웃한 숫자들의 합들을 중간에 넣으면 된다. [1, 2, 1]의 이웃한 숫자들의 합들은 [3, 3]이고 양끝에 1을 두면 [1, 3, 3, 1]이 되면서 다음층을 만들게 된다.
0층을 [1]으로 두고 주어진 높이에 맞게 다음층을 생성하여 반환하면된다.

📌Code

class Solution {
    fun getRow(rowIndex: Int) = (1..rowIndex).fold(listOf(1)) { preRow, _ ->
        val row = mutableListOf(1)
        for (col in 0 until preRow.lastIndex)
            row.add(preRow[col] + preRow[col + 1])
        row.apply { add(1) }
    }
}
profile
Hello, Devs!

0개의 댓글