Tiny Bunny
본문 바로가기
Algorithm/Python

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

by nowag 2024. 2. 13.

문제

크기가 N인 파스칼의 삼각형을 만들어야 한다.
파스칼의 삼각형이란 아래와 같은 규칙을 따른다.
1. 첫 번째 줄은 항상 숫자 1이다.
2. 두 번째 줄부터 각 숫자들은 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성된다.
N이 4일 경우, 

N을 입력 받아 크기 N인 파스칼의 삼각형을 출력하는 프로그램을 작성하시오.

제약 사항
파스칼의 삼각형의 크기 N은 1 이상 10 이하의 정수이다. (1 ≤ N ≤ 10)

 

입력

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스에는 N이 주어진다.

 

출력

각 줄은 '#t'로 시작하고, 다음 줄부터 파스칼의 삼각형을 출력한다.
삼각형 각 줄의 처음 숫자가 나오기 전까지의 빈 칸은 생략하고 숫자들 사이에는 한 칸의 빈칸을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

 

내가 쓴 코드

T = int(input())
for t in range(T):
    N = int(input())

    print(f'#{t+1}')
    print('1')
    if N >= 2:
        print('1 1')
    if N >= 3:
        print('1 2 1')
    if N >= 4:
        print('1 3 3 1')
    if N >= 5:
        print('1 4 6 4 1')
    if N >= 6:
        print('1 5 10 10 5 1')
    if N >= 7:
        print('1 6 15 20 15 6 1')
    if N >= 8:
        print('1 7 21 35 35 21 7 1')
    if N >= 9:
        print('1 8 28 56 70 56 28 8')
    if N == 10:
        print('1 9 36 84 126 126 84 36 9 1')

음.. 노가다로 코딩을 했는데.... 이게 될 줄이야..?

분 명 다른 방법으로 해야 할 것이다.. 그걸 알기에 나는 내일도 이 문제를 탐구해보겠다!!

탐구해서 더 좋은 코드로 돌아오겠습니닷 ! :) 

 

출력 결과

#1

1

1 1

1 2 1

1 3 3 1

728x90
반응형

'Algorithm > Python' 카테고리의 다른 글

[SWEA #1222] 계산기1  (1) 2024.02.13
[SWEA #11613] 스택2 - Forth  (2) 2024.02.13
[BOJ #11727] 2xn 타일링 2  (1) 2024.02.13
[SWEA #12397] 스택1 - 종이 붙이기  (1) 2024.02.13
[BOJ #2562] 최댓값  (1) 2024.02.09