https://leetcode.com/problems/pascals-triangle/
문제 분석
파스칼의 삼각형을 구하는 문제입니다.
처음 시도한 답안
class Solution:
def generate(self, numRows: int) -> List[List[int]]:
output = []
for i in range(numRows):
sums = []
for j in range(i + 1):
if j == 0 or j == i:
sums.append(1)
else:
sums.append(output[i-1][j-1] + output[i-1][j])
output.append(sums)
return output
접근 방법
- row를 순회합니다.
- 이중 순회에서는 row의 숫자 만큼 반복합니다.
- 만약 가장 왼쪽 혹은 가장 오른쪽에 해당한다면 리스트에 1을 추가합니다.
- 그 외의 경우에는 한단계 위의 row의 왼쪽과 오른쪽의 값을 더해서 리스트에 추가합니다.
- 이중 순회가 끝난 값을 output에 추가합니다.
이 문제의 포인트는 이중 순회 구간에서 row의 갯수만큼 반복하는 것과 바로 위 row의 좌, 우 값을 더한 결과를 누적시켜 나가는 것입니다.
728x90
'SW개발 > 코딩테스트' 카테고리의 다른 글
[LeetCode]Longest Substring Without Repeating Characters (0) | 2023.04.06 |
---|---|
[LeetCode]Add Two Numbers (0) | 2023.04.05 |
[LeetCode]Maximum Depth of Binary Tree (0) | 2023.04.03 |
[LeetCode]Search Insert Position (0) | 2023.04.02 |
[LeetCode]Symmetric Tree (0) | 2023.04.02 |