- Reference
- μκ°λ³΅μ‘λ: $O(N)$
- Runtime
168ms
- Beats
76.91%
Solution
from typing import List
class Solution:
# κ·Έλ₯ λ¨μνκ² λ°λ‘ μ νμ (νμ¬μ λ°λ‘ μ μ μ΄)μ μΆκ°ν΄λκ°λ©΄ λ¨
def generate(self, numRows: int) -> List[List[int]]:
# νμ 첫 λ²μ§Έ νμ 1
pascal = [[1]]
# κ·Έ λ€μ νκΉμ§ λΉκ΅νλ κ±°λκΉ 1μ μ λΉΌμ£Όλ©΄ λ²μ μλ¬
for i in range(numRows - 1):
# tmp ν μ μ₯νκ³ κ³μ μ΄κΈ°νμν΄ (λκ°μ΄ νμ 첫 λ²μ§Έ νμ 1)
tmp = [1] # μ²μμ 1
# jκ° 0μμ iκΉμ§μ λ²μμ μμ λκΉμ§(μ μΌκ°ν) μλλ₯Ό λ°λ³΅
for j in range(0, i):
# i νμ jλ²μ§Έ μμμ j+1λ²μ§Έ μμλ₯Ό λνλ€λ κ²μ
# μμμ μ€λͺ
ν κ²μ²λΌ λ°λ‘ μ νμ (νμ¬μ, λ°λ‘ μ μ μ΄)μ μΆκ°νλ κ²κ³Ό λκ°μ μ리 (λ€μ§μ΄μ)
tmp.append(pascal[i][j] + pascal[i][j + 1])
# λ§μ§λ§μ 1
tmp.append(1)
# νμ€μ΄ μμ±λμΌλ μ΄κ±Έ κ³μ μΆκ°ν΄λκ°λ©΄ μΌκ°ν μμ±
pascal.append(tmp)
return pascal
print(Solution().generate(5))
print(Solution().generate(1))
Leave a comment