본문 바로가기
카테고리 없음

[SWEA][Java][D2] 2005 파스칼의 삼각형

by Jun_N 2021. 1. 17.

SSAFY를 듣고 있으니 SWEA D5까지는 다 풀어보자! 하는 마음에 풀게 되었다. D1은 다 풀었고 너무 쉬워서 블로그에는 적지 않으려고 한다.

 

D2 중에서는 일부만 글을 적으려고 한다.

 

 

swexpertacademy.com/main/code/problem/problemList.do?problemLevel=2&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1#none

 

SW Expert Academy

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

swexpertacademy.com


문제 풀이 (완전 탐색)

 

파스칼 삼각형은 왼쪽 위와 오른쪽 위의 값을 더한값이 되는 규칙을 갖고 있다.

 

파스칼 삼각형을 구하는 규칙은 여러개가 있으나 이 문제에서는 완전탐색을 통해서 풀었다.

 

2차원 배열을 사용하여 [i-1][j-1]과 [i-1][j]를 더하는 규칙을 그대로 사용하였다.

import java.util.*;
 
public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
 
        for (int t = 1; t <= T; t++) {
            int N = sc.nextInt();
            int[][] tri = new int[N][N];
            tri[0][0] = 1;
            for (int i = 1; i < N; i++) {
                tri[i][0] = 1;
                for (int j = 1; j <= i - 1; j++) {
                    tri[i][j] = tri[i - 1][j - 1] + tri[i - 1][j];
                }
                tri[i][i] = 1;
            }
            System.out.println("#" + t);
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < i + 1; j++) {
                    System.out.print(tri[i][j] + " ");
                }
                System.out.println("");
            }
        }
    }
}