코딩테스트/SW Expert Academy

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

2024. 9. 29. 17:20

2005. 파스칼의 삼각형

 

✏️ 문제 풀이

- 파스칼의 삼각형에서 각 줄의 첫 번째 줄(0번째)은 1개의 요소, ... 일반적으로 n번째 줄(0부터 시작)은 n+1개의 요소를 가짐 

→ line 변수는 현재 줄의 번호를 나타내며, 0부터 시작 

- map(str, row): str 함수를 사용하여 row 리스트의 각 요소를 문자열로 변환

- ' '.join: 공백으로 요소들 연결 

def print_pascal_triangle(n):
    prev = []  # 이전 줄을 저장할 리스트 초기화
    for line in range(n): 
        row = [1] * (line + 1)  # 현재 줄의 초기값을 1로 설정 (줄의 길이는 line + 1)
        for i in range(1, line):  # 첫 번째와 마지막 원소는 항상 1이므로 1부터 line-1까지 반복
            row[i] = prev[i - 1] + prev[i]  # 이전 줄의 값을 이용해 현재 줄의 중간 원소 계산
        print(' '.join(map(str, row)))
        prev = row  # 현재 줄을 이전 줄로 저장

T = int(input())

for tc in range(T):
    n = int(input()) 
    if 1 <= n <= 10:  
        print(f"#{tc + 1}") 
        print_pascal_triangle(n)  
    else:
        print('-1')