728x90
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5P0-h6Ak4DFAUq
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
< 📝 문제 >
크기가 N인 파스칼의 삼각형을 만들어야 한다.
파스칼의 삼각형이란 아래와 같은 규칙을 따른다.
1. 첫 번째 줄은 항상 숫자 1이다.
2. 두 번째 줄부터 각 숫자들은 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성된다.
N이 4일 경우,
![](https://blog.kakaocdn.net/dn/YGsyo/btrtYVxfHIL/kBJtchSrg9cV1g9hGckGy1/img.png)
N을 입력 받아 크기 N인 파스칼의 삼각형을 출력하는 프로그램을 작성하시오.
< ❓ 생각 >
< 💻 코드 >
# 테스트 케이스 개수
T = int(input())
for tc in range(1,T+1):
# 테스트 케이스
N = int(input())
# N*N
arr = [[0]*N for _ in range(N)]
# if j == 0 -> arr[i][j] = 1
# if i == j -> arr[i][j] = 1
# arr[i][j] = arr[i-1][j-1] + arr[i-1][j]
for i in range(N):
# 열의 크기는 행의 인덱스+1
for j in range(i+1):
if i == j or j == 0:
arr[i][j] = 1
else:
arr[i][j] = arr[i-1][j-1] + arr[i-1][j]
print(f'#{tc}')
# 0은 출력 안함
for row in arr:
result = []
for x in row:
if x:
result += [x]
print(*result)
< ❗ >
N*N 빈 2차원 배열 만들기
arr = [[0]*N for _ in range(N)]
리스트를 띄어쓰기로 나열 *(언팩트)
print(*result)
# 결과
1
1 1
1 2 1
print(result)
# 결과
[1]
[1, 1]
[1, 2, 1]
728x90
반응형
'TIL - 프로그래밍 > Python 알고리즘' 카테고리의 다른 글
[SWEA] 1220. Magnetic - Python (0) | 2022.02.24 |
---|---|
[SWEA] 1223. 계산기2 - Python (0) | 2022.02.23 |
[SWEA] 4873. 반복문자 지우기 - Python (0) | 2022.02.22 |
[SWEA] 4866. 괄호검사 - Python (0) | 2022.02.22 |
[SWEA] 4869. 종이 붙이기 - Python (0) | 2022.02.22 |
댓글