본문 바로가기

Java/SWEA

[JAVA] SEWA 2005. 파스칼의 삼각형

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=2&contestProbId=AV5P0-h6Ak4DFAUq&categoryId=AV5P0-h6Ak4DFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=JAVA&select-1=2&pageSize=10&pageIndex=1

 

SW Expert Academy

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

swexpertacademy.com

 

파스칼의 삼각형

 

[알고리즘] 파스칼의 삼각형 (velog.io)

 

[알고리즘] 파스칼의 삼각형

이항 계수(n개의 원소중에서 k개를 순서에 상관없이 뽑았을 때 조합의 가짓수)를 삼각형 형태로 배열한 것

velog.io

 

 

- 이항 계수(n개의 원소중에서 k개를 순서에 상관없이 뽑았을 때 조합의 가짓수)를 삼각형 형태로 배열한 것

 

  1) n번째 행에는 n개의 수가 있다 

  2) 첫 번째 행은 1이다. 

  3) 두 번째 행부터, 각 행의 양 끝의 값은 1이고, 나머지 수의 값은 바로 위 행의 인접한 두 수의 합이다. 

 

 

 

 

정답 

 

import java.util.Scanner;

class Solution
{
	public static void main(String args[]) throws Exception
	{	
		Scanner sc = new Scanner(System.in);
		
		int T = sc.nextInt();
		
		for(int t=1; t<=T; t++)
		{
			int N = sc.nextInt();
			
			int pascal[][] = new int[N][];
			
			for(int i=0; i<N; i++)
			{
				pascal[i] = new int[i+1];
				
				//규칙 1. 각 행의 첫 번째 숫자는 1
				pascal[i][0] = 1;
				pascal[i][i] = 1;
				
				//규칙 2. 중간에 위치한 숫자는 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성
				for(int j=1; j<i; j++)
				{
					pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j];
				}
			}
			
			System.out.printf("#%d\n",t);
			//출력
			for(int i=0; i<pascal.length; i++)
			{
				for(int j=0; j<pascal[i].length; j++)
				{
					System.out.print(pascal[i][j]+" ");
				}
				System.out.println();
			}
			
		
		}
		
	}
}