본문 바로가기

[ leetcode ]

118. Pascal's Triangle

반응형
SMALL

행의 수가 주어졌을 때 그 행의 길이만큼 파스칼의 삼각형을 만들어라.

파스칼의 삼각형은 각 수가 직전 수의 합으로 만들어진다.

 

 


 

solution 1.

직전 수의 합은 인덱스로 본다면,

직전행의 동일한 인덱스의 수 더하기 직전행의 하나 작은 인덱스의 수를 더해서 해당 수가 만들어진다.

 

그리고 처음의 수와 마지막 수는 없는 수 더하기 1의 연속이므로 계속 1로 유지된다.

그렇기 때문에 처음과 마지막이 1로 유지될 수 있게 하는 방법도 필요하다.

 

그리고 시작의 수가 1이라는 점도 잊지 말아야 한다.

그렇기 때문에 1로 모든 행을 초기화 해놓고 첫 열과 마지막 열을 1로 초기화 할 수 있다.

그 후, 직전행의 동일한 인덱스의 수 더하기 직전행의 하나 작은 인덱스의 수를 더하면 해당 행의 수가 만들어지게 한다.

 

class Solution:
    def generate(self, numRows: int) -> List[List[int]]:
        out = []
        for i in range(numRows):
            out.append([1]*(i+1))

        for i in range(numRows):
            for j in range(1, i):
                out[i][j] = out[i-1][j-1] + out[i-1][j]
        return out
반응형
LIST

'[ leetcode ]' 카테고리의 다른 글

160. Intersection of Two Linked Lists  (0) 2023.01.03
141. Linked List Cycle  (0) 2023.01.01
101. Symmetric Tree  (0) 2022.12.20
94. Binary Tree Inorder Traversal  (0) 2022.12.18
88. Merge Sorted Array  (0) 2022.12.18