[SWEA] <D2> 2005. 파스칼의 삼각형 (Java)
문제
크기가 N인 파스칼의 삼각형을 만들어야 한다.
파스칼의 삼각형이란 아래와 같은 규칙을 따른다.
\1. 첫 번째 줄은 항상 숫자 1이다.
\2. 두 번째 줄부터 각 숫자들은 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성된다.
N이 4일 경우,
N을 입력 받아 크기 N인 파스칼의 삼각형을 출력하는 프로그램을 작성하시오.
입력
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스에는 N이 주어진다.
출력
각 줄은 '#t'로 시작하고, 다음 줄부터 파스칼의 삼각형을 출력한다.
삼각형 각 줄의 처음 숫자가 나오기 전까지의 빈 칸은 생략하고 숫자들 사이에는 한 칸의 빈칸을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
※ 제약 사항
파스칼의 삼각형의 크기 N은 1 이상 10 이하의 정수이다. (1 ≤ N ≤ 10)
풀이
- N <= 10 이므로 크기가 작아서 2차원 배열 사용
- i == j이면 값은 1이고 다음 행으로 이동
- j == 0이면 값은 1
코드
import java.util.Scanner;
public class N2005 {
public static void main(String[] args) {
// TODO 2005. 파스칼의 삼각형
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];
for(int i = 0; i < N; i++)
{
for(int j = 0; j <= i; j++)
{
if(i == j) {
pascal[i][j] = 1;
}else if(j == 0) {
pascal[i][j] = 1;
}else {
pascal[i][j] = pascal[i-1][j-1] + pascal[i-1][j];
}
}
}
System.out.println("#" + test_case);
for(int i = 0; i < N; i++)
{
for(int j = 0; j <= i; j++)
{
System.out.print(pascal[i][j] + " ");
}
System.out.println();
}
}
}
}
Author And Source
이 문제에 관하여([SWEA] <D2> 2005. 파스칼의 삼각형 (Java)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimjy199/SWEA-D2-2005.-파스칼의-삼각형-Java저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)