알고리즘 모음(C++)

백준 16395 - 파스칼의 삼각형(C++) 본문

백준

백준 16395 - 파스칼의 삼각형(C++)

공대생의 잡다한 사전 2023. 7. 26. 14:21

문제 링크입니다. https://www.acmicpc.net/problem/16395

 

16395번: 파스칼의 삼각형

파스칼의 삼각형은 이항계수를 삼각형 형태로 배열한 것인데, 블레즈 파스칼(1623-1662)을 따라 이름 붙여졌다. 단순한 형태로, 파스칼의 삼각형은 다음과 같은 방법으로 만들 수 있다. N번째 행

www.acmicpc.net

유명한 모형입니다.

이를 코드로 작성하라는 문제인데, X번째 수를 구하긴 위해서

일단 X번의 행과 열을 알아야합니다. 이를 각각 N, M이라고 했을 때, 값은 다음과 같습니다.

   arr[N][M] = arr[N-1][M-1] + arr[N-1][M]

 

 

 

자세한 것은 코드를 참고해주세요.

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <string>
#include <cmath>

using namespace std;

int N, K;
int arr[31][31];

void solve(){
    arr[1][1] = 1;
    for(int i = 2; i <= N; i++){
        for(int j = 1; j <= i; j++){
            if(j == 1 || j == i) arr[i][j] = 1;
            else{
                arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
            }
        }
    }
    cout << arr[N][K];
}

int main(){
    cin.tie(0);
    cout.tie(0);
    cin >> N >> K;
    solve();
    return 0;
}

 

 

질문 및 조언은 댓글을 남겨주세요.

'백준' 카테고리의 다른 글

백준 16194 - 카드 구매하기(C++)  (0) 2023.07.27
백준 2302 - 극장 좌석(C++)  (0) 2023.07.27
백준 2670 - 연속부분최대곱(C++)  (0) 2023.07.26
백준 9656 - 돌 게임2(C++)  (0) 2023.07.24
백준 9507 - Generations of Tribbles(C++)  (0) 2023.07.24