본문 바로가기

알고리즘/Jungol

[Java] 정올기초다지기 배열2-형성평가09

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package 배열2.형성평가09;
 
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
 
        int [][] arr = new int [10][10];
        int num=0;
        
        Scanner sc = new Scanner(System.in);
        num = sc.nextInt();
        
        for(int i=0;i<num;i++) { //행의 시작과 끝을 1로 초기화
            for(int j=0;j<1;j++) {
                arr[i][j] = 1;
                arr[i][i] = 1;
            }
        }
        for(int i=2;i<num;i++) {
            for(int j=1;j<i;j++) {
                arr[i][j] = arr[i-1][j]+arr[i-1][j-1];
            }
        }
        for(int i=num-1;i>-1;i--) {
            for(int j=i;j>=0;j--) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }
}
 
 

 

> 최대 행의수가 10이므로 10*10의 배열을 만든뒤 그배열에 정방향으로 초기화를 시켜준후

   출력할때엔 문제에서 원하는대로 위에서부터 큰배열순으로 출력하여줄것입니다.

 

> for문을 사용하여 입력받은값에 맞게 1을 넣어 초기화하여줍니다.

   그다음으로 바로 나오는 for문은 1로 초기화된 배열을 파스칼 삼각형에 맞게 arr[i-1][j] + arr[i-1][j-1] 을 해주어

   바로위의 수와 그 왼쪽수를 더하여 아래의 수를 입력하여 줍니다.

 

> 모든 수의 입력이 완료되었다면 마지막 for문과 같이 배열을 역으로 출력하여줍니다.