2005. 파스칼의 삼각형
문제 풀이
arr[0][0] | 0 | 0 | 0 |
---|
arr[1][0] | arr[1][1] | 0 | 0 |
arr[2][0] | arr[2][1] | arr[2][2] | 0 |
arr[3][0] | arr[3][1] | arr[3][2] | arr[3][3] |
- 자신의 왼쪽 위와 오른쪽 위를 더해야 한다.
만약 arr[2][1]
을 만들기 위해서는 '왼쪽 위인 arr[1][0]
'과 '오른쪽 위인 arr[1][1]
'을 더해야 한다.
- 또한, 배열 범위를 초과하지 않고 값이 있다면 더할 수 있다.
t = int(input())
for i in range(1, t + 1):
n = int(input())
arr = [[0] * n for _ in range(n)]
arr[0][0] = 1
for j in range(n):
for k in range(n):
if j == 0 and k == 0:
continue
if j - 1 >= 0 and k - 1 >= 0 and arr[j - 1][k - 1]:
arr[j][k] += arr[j - 1][k - 1]
if j - 1 >= 0 and arr[j - 1][k]:
arr[j][k] += arr[j - 1][k]
print(f"#{i}")
for ar in arr:
for a in ar:
if a:
print(a, end=' ')
print()