관리 메뉴

Kim's Programming

2005. 파스칼의 삼각형 본문

SW ExpertAcademy/D2

2005. 파스칼의 삼각형

Programmer. 2018. 12. 1. 15:40

2005. 파스칼의 삼각형

문제출처: https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5P0-h6Ak4DFAUq&categoryId=AV5P0-h6Ak4DFAUq&categoryType=CODE




풀이 방법



<코드>


#include<iostream>
#include <cmath>
using namespace std;


int main(int argc, char** argv)
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int test_case;
	int T;
	int numL{ 0 }, numR{ 0 };

	cin >> T;

	for (test_case = 1; test_case <= T; ++test_case)
	{
		int N{ 0 };
		std::cin >> N;

		int size{ 0 };

		for (int i = 1; i <= N; i++)
			size += i;

		int* dataArray = new int[size] {0, };

		int stack{ -1 };
		for (int i = 1; i <= N; i++)
		{
			if (stack != -1)	//끝에 0채우기
				dataArray[stack + 1] = dataArray[stack + i] = 1;
			else
				dataArray[stack + 1] = 1;

			if (i < 3)
				stack += i;
			else
			{
				stack++;
				for (int j = 0; j < i - 2; j++)
				{
					dataArray[stack + 1] = dataArray[stack + 1 - i] + dataArray[stack + 1 - i + 1];
					stack++;
				}
				stack++;
			}
		}


		std::cout << "#" << test_case << "\n";

		int count{ 0 };
		for (int i = 1; i <= N; i++)
		{
			for (int j = 0; j < i; j++)
			{
				std::cout << dataArray[count] << ' ';
				count++;
			}
			std::cout << "\n";
		}

		delete[] dataArray;
	}

	return 0;//정상종료시 반드시 0을 리턴해야합니다.
}


'SW ExpertAcademy > D2' 카테고리의 다른 글

1926. 간단한 369게임  (0) 2018.12.01
2007. 패턴 마디의 길이  (0) 2018.12.01
2001. 파리 퇴치  (0) 2018.12.01
1989. 초심자의 회문 검사  (0) 2018.12.01
1986. 지그재그 숫자  (0) 2018.12.01