[Leetcode] 118. Pascal's Triangle
Algorithm2021. 8. 7. 16:35
반응형
Identifying the Problem
row 층 까지 파스칼 삼각형을 만들어 리턴한다.
Organizing thoughts
파스칼 삼각형의 규칙은 간단하다.
- 양 끝은 항상 1로 끝나고
- 그 사이의 값들은 이전 층의 0번째 + 1번째 ... n-1번째 + n번째의 합으로 이뤄진다.
단 이 규칙은 row가 3 이상일 때부터 적용된다.
Sourcecode
int** generate(int numRows, int* returnSize, int** returnColumnSizes){
int** arr; //정답 어레이를 선언
arr = (int**) malloc ( sizeof(int*) * numRows ); //행 배열 동적할당
for(int i=0; i<numRows; i++)
{
arr[i] = (int*) malloc ( sizeof(int) * (i+1) ); //열 동적할당
arr[i][0] = 1; //양 끝은 1
arr[i][i] = 1;
}
*returnSize = numRows; //13 ~ 18줄은 test assert용
*returnColumnSizes = (int*) malloc (sizeof(int) * numRows);
for(int i = 0; i<numRows; i++)
(*returnColumnSizes)[i] = i+1;
int k=2; //row가 3 이상일때부터
while(numRows>2 && k<numRows)
{
for(int i=1;i<k ;i++)
arr[k][i] = arr[k-1][i-1] + arr[k-1][i];
//이전층의 이전 index 와 현재 index를 합한다.
k++; //다음 층으로 이동
}
return arr;
}
반응형
'Algorithm' 카테고리의 다른 글
[Leetcode] 125. Valid Palindrome (0) | 2021.08.07 |
---|---|
[Leetcode] 121. Best Time to Buy and Sell Stock] (0) | 2021.08.07 |
[Leetcode] 217. Contains Duplicate (0) | 2021.08.06 |
[Leetcode] 11. Container With Most Water (0) | 2021.08.06 |
[Leetcode] 33. Search in Rotated Sorted Array (0) | 2021.08.06 |
댓글()