백준
백준 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;
}

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