개발에 AtoZ까지

[JAVA][D2] 2005. 파스칼의 삼각형 본문

코딩테스트 준비/SWEA

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

AtoZ 개발자 2021. 1. 4. 18:53
반응형

문제 

크기가 N인 파스칼의 삼각형을 만들어야 한다.

파스칼의 삼각형이란 아래와 같은 규칙을 따른다.

1. 첫 번째 줄은 항상 숫자 1이다.

2. 두 번째 줄부터 각 숫자들은 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성된다.

N이 4일 경우,
 



N을 입력 받아 크기 N인 파스칼의 삼각형을 출력하는 프로그램을 작성하시오.


[제약 사항]

파스칼의 삼각형의 크기 N은 1 이상 10 이하의 정수이다. (1 ≤ N ≤ 10)


[입력]

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스에는 N이 주어진다.


[출력]

각 줄은 '#t'로 시작하고, 다음 줄부터 파스칼의 삼각형을 출력한다.

삼각형 각 줄의 처음 숫자가 나오기 전까지의 빈 칸은 생략하고 숫자들 사이에는 한 칸의 빈칸을 출력한다.

(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

예시

 

풀이

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Solution {
	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		try {
			//입력된 반복수
			int caseCount= Integer.parseInt(br.readLine());
			for(int i=1;i<=caseCount;i++) {
				int N=Integer.parseInt(br.readLine());
				System.out.println("#"+i);
				//N값만큼 2차원 배열 생성
				int[][] result=new int[N][N];
				//초기값 형성
				result[0][0]=1;
				System.out.println(result[0][0]);
				//x좌표
				for(int j=1;j<N;j++) {
					int sum=0;
					//y좌표
					for(int a=0;a<=j;a++) {
						if(a==0) {
							result[j][a]=1;
							System.out.printf("%d ",result[j][a]);
						}

						else {
							sum=result[j-1][a-1]+result[j-1][a];
							result[j][a]=sum;
							System.out.printf("%d ",result[j][a]);
						}
					}
					System.out.println();
				}
			}
		} catch (Exception e) {
		e.printStackTrace();
		}
	}

}
반응형
Comments