Language/JAVA

파스칼의 삼각형

yeahzzz 2022. 1. 4. 21:35

swea2005 파스칼의 삼각형

입력 받을 때 bufferedReader 사용함. 

솔직히 좀 무대뽀로 짜서 코드가 지저분한데 한번에 pass 되어서 놀랐다. 

의외로 얼마 안 걸린 문제.

 

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package bufferRead;
 
import java.io.*;
import java.util.StringTokenizer;
 
public class Swea2005 {
    
    public static void getAnswer(int arr[][], int len, int N) {
        for(int y = 0; y < N ; y++) {
            for(int x = 0; x < len; x++) {
                arr[y][x] = 0;
                if (x == N-1) {
                    arr[0][x] = 1;
                }
            }
        }
        
        for(int y = 1; y < N ; y++) {
            for(int x = 0; x < len ; x++) {
                if (x == 0)
                    arr[y][x] = arr[y-1][x+1];
                else if (x == len-1)
                    arr[y][x] = arr[y-1][x-1];
                else 
                    arr[y][x] = arr[y-1][x-1+ arr[y-1][x+1];
            }
        }
        
        for(int y = 0; y < N; y++) {
            for(int x = 0; x < len; x++) {
                if (arr[y][x] != 0) {
                    System.out.println(arr[y][x] + " ");
                }
            }
        }
    }
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        for(int tc = 1; tc <= T; tc++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int len = N*2-1;
            int arr[][] = new int [N][len];
            System.out.printf("#%d" , tc);
            getAnswer(arr, len, N);
        }
 
    }
 
}
 
cs