문제. 2005 파스칼의 삼각형
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!...
swexpertacademy.com
크기가 N인 파스칼의 삼각형을 만들어야 한다.
파스칼의 삼각형이란 아래와 같은 규칙을 따른다.
1. 첫 번째 줄은 항상 숫자 1이다.
2. 두 번째 줄부터 각 숫자들은 자신의 왼쪽과 오른쪽 위의 숫자의 합으로 구성된다.
N이 4일 경우,
![SWEA(SW Expert Academy) [d2] 2005. 파스칼의 삼각형 (java) - 문제. 2005 파스칼의 삼각형 SWEA(SW Expert Academy) [d2] 2005. 파스칼의 삼각형 (java) - 문제. 2005 파스칼의 삼각형](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
N을 입력 받아 크기 N인 파스칼의 삼각형을 출력하는 프로그램을 작성하시오.
[제약 사항]
파스칼의 삼각형의 크기 N은 1 이상 10 이하의 정수이다. (1 ≤ N ≤ 10)
[입력]
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스에는 N이 주어진다.
[출력]
각 줄은 '#t'로 시작하고, 다음 줄부터 파스칼의 삼각형을 출력한다.
삼각형 각 줄의 처음 숫자가 나오기 전까지의 빈 칸은 생략하고 숫자들 사이에는 한 칸의 빈칸을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
입력 | 출력 |
1 4 |
#1
1 1 1 1 2 1 1 3 3 1 |
풀이
import java.util.Scanner;
import java.io.FileInputStream;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T;
T=sc.nextInt();
for(int test_case = 1; test_case <= T; test_case++)
{
int num = sc.nextInt();
int arr[][] = new int[num][num];
System.out.println("#" + test_case);
if(num == 1) arr[0][0] = 1; // 1이 입력될 경우 하나만 1
else if(num == 2) { // 2가 입력될 경우 1 3개 출력
arr[0][0] = 1;
arr[1][0] = 1;
arr[1][1] = 1;
}
else { // 3이상부터 규칙 적용.
arr[0][0] = 1;
arr[1][0] = 1;
arr[1][1] = 1;
for(int i = 2; i < num; i++){ // 처음과 끝을 제외하고 이전의 두개값을 가져와 더한다.
arr[i][0] = 1;
arr[i][i] = 1;
for(int j = 1; j < i; j++){
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
}
for(int i = 0; i < num; i++){
for(int j = 0; j <= i; j++){
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
}
코드가 길어진 것 같은데 풀었으니 됐겠지?
반응형
'취업이야기' 카테고리의 다른 글
노베이스 & 독학 6주만에 한능검 합격! (2) | 2025.03.25 |
---|---|
SWEA(SW Expert Academy) [d2] 2007. 패턴 마디의 길이 (java) (0) | 2024.04.13 |
SWEA(SW Expert Academy) [d2] 1926. 간단한 369게임 (java) (0) | 2024.04.13 |
SWEA(SW Expert Academy) [d2] 1859. 백만 장자 프로젝트 (java) (0) | 2024.04.13 |
SWEA(SW Expert Academy) [d1] 2047. 신문 헤드라인 (java) (0) | 2024.04.04 |
댓글