본문 바로가기
SW Expert Academy

[2005] 파스칼의 삼각형 (JAVA)

by 댈팽이 2026. 5. 14.
728x90

# 문제 정보

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


# 정답 코드

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 test_case = 1; test_case <= T; test_case++) {
            int N = sc.nextInt();
            int[][] pascal = new int[N][N];

            System.out.println("#" + test_case);

            for (int r = 0; r < N; r++) {
                for (int c = 0; c < N; c++) {
                    if (r < c) {
                        pascal[r][c] = 0;
                    } else if (c == 0 || r == c) {
                        pascal[r][c] = 1;
                        System.out.print("1 ");
                    } else {
                        pascal[r][c] = pascal[r-1][c-1] + pascal[r-1][c];
                        System.out.print(pascal[r][c] + " ");
                    }
                }
                System.out.println();
            }
        }
    }
}

 

NxN 크기의 2차원 배열로 파스칼 삼각형을 구현한다.

 

pascal[1][3]처럼 행보다 열이 큰 경우에는 0을 저장한다.

pascal[1][0] 또는 pascal [1][1]처럼 열이 0이거나 행과 열이 같은 경우에는 1을 저장한다.

나머지 경우에는 'pascal[행][열] = pascal[행-1][열-1] + pascal[행-1][열]'의 식을 사용해 저장한다.

728x90