본문 바로가기
알고리즘/SWEA

[SWEA] 2005. 파스칼의 삼각형

by hyerann 2019. 4. 17.

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

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

www.swexpertacademy.com

파스칼의 삼각형 규칙인 '두 번째 줄부터 각 숫자들은 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성된다.'를 코드로 표현하면 된다.

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

int T, N, triangle[10][10];
void initializeTriangle();	// triangle 배열 재사용을 위해 0으로 초기화
void makeTriangle();
void print();

int main() {
	cin.tie(0); ios::sync_with_stdio(0);
	cin >> T;
	for (int testCase = 1; testCase <= T; testCase++) {
		initializeTriangle();
		cin >> N;
		makeTriangle();
		cout << '#' << testCase << "\n";
		print();
	}
	return 0;
}

void initializeTriangle() {
	for (int y = 1; y < N; y++) {
		for (int x = 0; x < N; x++) {
			triangle[y][x] = 0;
		}
	}
}

void makeTriangle() {
	triangle[0][0] = 1;
	for (int y = 1; y < N; y++) {
		for (int x = 0; x < N; x++) {
			if (x - 1 >= 0) triangle[y][x] += triangle[y - 1][x - 1];
			triangle[y][x] += triangle[y - 1][x];
		}
	}
}

void print() {
	for (int y = 0; y < N; y++) {
		for (int x = 0; x < N; x++) {
			if(triangle[y][x]) cout << triangle[y][x] << ' ';
		}
		cout << "\n";
	}
}

'알고리즘 > SWEA' 카테고리의 다른 글

[SWEA] 1954. 달팽이 숫자  (0) 2019.04.21
[SWEA] 1926. 간단한 369게임  (0) 2019.04.17
[SWEA] 1940. 가랏! RC카!  (0) 2019.04.17
[SWEA] 1961. 숫자 배열 회전  (0) 2019.04.16
[SWEA] 2001. 파리 퇴치  (0) 2019.04.16

댓글