tc = int(input()) for idx in range(1, tc+1): n = int(input()) # 파스칼 삼각형의 크기 temp = [1] # 첫번째 줄 # 2차원 리스트로 만들지 않고 바로바로 프린트 해주기 위해 # 테스트케이스의 번호와 첫번째 줄을 먼저 프린트해준다. print('#{}'.format(idx)) print(*temp) # 두번째 줄부터 시작하기 때문에 삼각형 크기-1(n-1)까지 반복 for i in range(n-1): stack = [0] + temp + [0] # 맨 처음과 끝에 있는 1은 더할게 없으니 현재의 위 라인의 양 끝에 0을 붙여준다. temp = [] # 해당 라인의 숫자를 저장할 임시 리스트 # 여기서 pop()은 맨 마지막 원소를 뽑는다. # 파스칼 삼각형은 뒤집어도 똑같으니 반대로 해도 상관 X num_pop = stack.pop() # 자신의 오른쪽 위 숫자 가져오기 (0) while stack: num_pop2 = stack.pop() # 자신의 왼쪽 위 숫자 가져오기 temp.append(num_pop + num_pop2) # 자신의 왼쪽 위 숫자 오른쪽 위 숫자와를 더하여 temp에 저장한다. num_pop = num_pop2 # 자신의 오른쪽 숫자는 다음 자신의 왼쪽 숫자이므로 바꿔준다. # 해당 라인을 프린트 해준다. print(*temp)
'Algorithm > SW Expert Academy' 카테고리의 다른 글
[Python] 4866. 괄호 검사 (0) | 2021.09.14 |
---|---|
[Python] 1219. 길찾기 (0) | 2021.09.14 |
[Python] 4865. 글자수 (0) | 2021.09.07 |
[Python] 4864. 문자열비교 (0) | 2021.09.07 |
[Python] 1216. 회문2 (0) | 2021.09.07 |