문제 링크
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5P0-h6Ak4DFAUq&
문제
크기가 N인 파스칼의 삼각형을 만들어야 한다.
파스칼의 삼각형이란 아래와 같은 규칙을 따른다.
1. 첫 번째 줄은 항상 숫자 1이다.
2. 두 번째 줄부터 각 숫자들은 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성된다.
n = 4 일 경우
1
1 1
1 2 1
1 3 3 1
N을 입력 받아 크기 N인 파스칼의 삼각형을 출력하는 프로그램을 작성하시오.
[제약 사항]
파스칼의 삼각형의 크기 N은 1 이상 10 이하의 정수이다. (1 ≤ N ≤ 10)
입력
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스에는 N이 주어진다.
출력
각 줄은 '#t'로 시작하고, 다음 줄부터 파스칼의 삼각형을 출력한다.
삼각형 각 줄의 처음 숫자가 나오기 전까지의 빈 칸은 생략하고 숫자들 사이에는 한 칸의 빈칸을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
예제
입력
1
4
출력
#1
1
1 1
1 2 1
1 3 3 1
정답 및 풀이
t = int(input())
for tc in range(t):
n = int(input())
arr=[[0]*n for _ in range(n)]
for i in range(0,n):
for j in range(i+1):
if 1 <= j < i:
arr[i][j] = arr[i-1][j]+arr[i-1][j-1]
else :
arr[i][j] = 1
print(f'#{tc+1}')
for a in range(len(arr)):
for b in range(len(arr)):
if arr[a][b]==0:
break
else:
print(arr[a][b],end=" ")
print()
- t = int(input())
- 테스트 케이스 개수를 입력받는다.
- n = int(input()) / arr = [[0]*n for _ in range(n)]
- n 크기를 입력받고 n×n 배열을 0으로 초기화한다.
- for i in range(0, n): for j in range(i+1):
- i행에서 0부터 i까지 j를 늘리며 파스칼 값을 채운다.
- if 1 <= j < i:
- j가 행의 중간에 위치하면 내부 값이므로
- else: arr[i][j] = 1
- j가 0 또는 j==i이면 가장자리이므로 값을 1로 넣는다.
- print(f'#{tc+1}')
- 테스트 케이스 번호를 출력한다.
- 출력 루프: for a in range(len(arr)): for b in range(len(arr)):
- arr[a][b] == 0이면 그 행에서 출력 중단하고 0이 아니라면 arr[a][b]를 출력한다.
'SWEA' 카테고리의 다른 글
| [SWEA] 1989 : 초심자의 회문 검사 (Python/파이썬) (0) | 2025.11.19 |
|---|---|
| [SWEA] 1284 : 수도 요금 경쟁 (Python/파이썬) (0) | 2025.11.19 |
| [SWEA] 1979 : 어디에 단어가 들어갈 수 있을까 (Python/파이썬) (0) | 2025.11.19 |
| [SWEA] 2007 : 패턴 마디의 길이 (Python/파이썬) (0) | 2025.11.19 |
| [SWEA] 1974 : 스토쿠 검증 (Python/파이썬) (0) | 2025.11.19 |