C, C++ 문제풀이
SW Expert Academy 2005. 파스칼의 삼각형
륵기
2020. 2. 28. 12:00
728x90
반응형
문제 링크 :
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
#include <iostream>
using namespace std;
int main()
{
int index = 0;
int num = 0; // 삼각형 줄 수
cin >> index; // 테스트 케이스 수
int cur, prv; // 현재 인덱스, 이전 인덱스 나타내주기 위함
int arr[10][10]; // 삼각형 최대 줄 수가 10이기때문에 10x10 행렬
for (int Tc = 1; Tc <= index; Tc++) {
cin >> num; // 줄 수 입력
cout << '#'<< Tc<<'\n'; //테스트케이스 출력
for (int i = 0; i < num; i++)
{
prv = (i + 1) % 2; //
cur = i % 2;
for (int j = 0; j <= i; j++) // 삼각형 출력이므로 열 접근이 행의 수보다 하나 적어야함
{
if (j == 0 || j == i)
{
arr[cur][j] = 1; (0,0) , (1,1)... 대각 원소들 전부 1
}
else
{
arr[cur][j] = arr[prv][j - 1] + arr[prv][j]; // 윗 줄의 원소값 더하는 것 표현
// 1
// 1 1
// 1 2 1 -> 1 + 1 = 2
// (1,0) + (1,1) = (2, 1)
}
}
for (int j = 0; j <= i; j++)
{
cout << arr[cur][j]<<' '; // 원소들 출력
}
cout << '\n'; // 줄 바꿈
}
}
return 0;
}
728x90
반응형