
문제 링크 : https://leetcode.com/problems/pascals-triangle/
Pascal's triangle .. 라는 것을 만드는 문제이다.
Pascal's triangle이란?
In Pascal's triangle, each number is the sum of the two numbers ...
Input: numRows = 5
Output: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
를 보면
우선 numsRow 수 만큼 num배열을 만들어주고
맨 첫번째 배열과 맨 마지막 배열은 항상 1이 온다.
그리고 그 앞 배열(i-1) 의 그 전 번째(j-1)와 해당 번쨰(j)를 더해주면 된다
이를 코드로 나타내면 다음과 같다
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
num = [0]*numRows
for i in range(numRows):
num[i]=[0]*(i+1)
num[i][0] = 1
num[i][-1] = 1
for j in range(1,i):
num[i][j] = num[i-1][j-1]+num[i-1][j]
return num
22.06.16
다시 복습
처음에는 어려웠는데..
하다보몀ㄴ서 차근차근 구현하다보니 엄청 어렵지는 않았다
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
nums = [0]*numRows
for i in range(numRows):
nums[i] = [0]*(i+1)
nums[i][0] = 1
nums[i][-1]= 1
for j in range(1,i):
nums[i][j] = nums[i-1][j-1] + nums[i-1][j]
return nums