문제
15489번: 파스칼 삼각형
첫째 줄에 양의 정수 R, C, W가 공백을 한 칸씩 두고 차례로 주어진다. (단, 2 ≤ R+W ≤ 30, 2 ≤ C+W ≤ 30, 1 ≤ W ≤ 29, C ≤ R)
www.acmicpc.net
소스코드
#include <bits/stdc++.h>
using namespace std;
int dp[31][31];
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int r,c,w,ans=0;
cin >> r >> c >> w;
int row = r + w - 1;
dp[1][1] = 1, dp[2][1] = 1, dp[2][2] = 1;
for (int i = 3; i <= row; i++) {
for (int j = 1; j <= i; j++) {
if (j == 1 || j == i) dp[i][j] = 1;
else {
dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
}
}
}
int flag = c;
for (int i = r; i <= row; i++) {
for (int j = c; j <= flag; j++) {
ans += dp[i][j];
}
flag++;
}
cout << ans;
}
풀이
파스칼의 삼격형 문제 2탄입니다.
1탄과 마찬가지인 로직인데, 다만 새로운 꼭지점이 생긴것 부터 또다시 파스칼 삼각형을 이루는 값들의 합을 구하는 것이다.
'Algorithm > dynamic programming' 카테고리의 다른 글
| [백준] 알고리즘 13699번 - 점화식 문제 (0) | 2021.03.26 |
|---|---|
| [백준] 알고리즘 2670번 - 연속부분최대곱 문제 (0) | 2021.03.26 |
| [백준] 알고리즘 16395번 - 파스칼의 삼각형 문제 (0) | 2021.03.24 |
| [백준] 알고리즘 14916번 - 거스름돈 문제 (0) | 2021.03.22 |
| [백준] 알고리즘 13301번 - 타일 장식물 문제 (0) | 2021.03.21 |
