[SWEA] 2005. 파스칼의 삼각형

야금야금 공부·2023년 5월 7일
0

SWEA

목록 보기
28/43
post-thumbnail

2005. 파스칼의 삼각형


문제 풀이

  • 입력 n만큼 nxn 크기의 배열을 생성한다.
arr[0][0]000
arr[1][0]arr[1][1]00
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)]   # nxn 크기 리스트
    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()

0개의 댓글