[swexpert] 2005. 파스칼의 삼각형 (python, java)

728x90
반응형

1

1 1 

1 2 1 

 

에서 dp의 인덱스는

j,k가 

 

00

10 11 

20 21 22

30 31 32 33 

 

이렇게 된다 k(행)이 0이거나 j==k인 경우 1이고 아닌 경우 dp[j-1][k-1]+dp[j-1][k] 이다 

21 위치에 있는 수의 경우 10에 있는 수와 11에 있는 수를 더한다

 

1. 파이썬 풀이 

t=int(input())
for i in range(1,t+1):
    n=int(input())
    print(f'#{i}')
    dp=[]
    for j in range(n):
        arr=[]
        for k in range(j+1):
            if k==0 or k==j:
                arr.append(1)
                print(1,end=' ')
            else:
                arr.append(dp[j-1][k-1]+dp[j-1][k])
                print(dp[j-1][k-1]+dp[j-1][k],end=' ')
        dp.append(arr)
        print()

2. 자바 풀이 

 

import java.util.Scanner;

public class Solution {
	
public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		int t=sc.nextInt();
		sc.nextLine();
		for (int tc = 0; tc <t; tc++) {
			int n=sc.nextInt();
			int[][] arr=new int[n][n];
			for (int i = 0; i < n; i++) {
				for (int j = 0; j <= i; j++) {
					if(j==0 || j==i) arr[i][j]=1;
					else {
						arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
					}
				}
			}
			System.out.println("#"+(tc+1));
			for (int i = 0; i < n; i++) {
				for (int j = 0; j <=i; j++) {
					System.out.print(arr[i][j]+" ");
				}
				System.out.println();
			}
			
		}
		sc.close();
	}
	
	
}
728x90
반응형
TAGS.

Comments