728x90
반응형
파스칼의 삼각형 문제!
파스칼의 삼각형 개념을 로직으로 옮기면 되는 간단한 문제였다.
알고리즘 설계
- N층에 있다면, 1번째와 N번째 요소는 1로 만들어준다.
- 현재 M번째라고 하면, 그 외에 요소는 arr[N-1][M-1] + arr[N-1][M]
- 입력 층까지 반복한다.
코드
#include<bits/stdc++.h>
using namespace std;
int main()
{
int dp[30][30], y, x;
cin >> y >> x;
for (int i = 0; i < 30; i++)
{
for (int j = 0; j <= i; j++)
{
if (i > 0 && j > 0 && j != i)
{
dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
}
else
{
dp[i][j] = 1;
}
}
}
cout << dp[y - 1][x - 1];
}
조합과 연관이 되어있어서 더 신기했던 문제이다.
다른 조합 문제들을 이렇게 풀었으면 어땠을까하는 생각이 들었다.
728x90
반응형
'알고리즘 문제풀이 > 동적 프로그래밍' 카테고리의 다른 글
[백준][C++] 10942 팰린드롬? (0) | 2023.01.14 |
---|---|
[백준][C++] 1912 연속합 (0) | 2022.11.04 |
[백준][C++] 11053 가장 긴 증가하는 부분 수열 (0) | 2022.11.04 |
[백준][C++] 2407 조합 (0) | 2022.11.04 |
[백준][C++] 11727 2×n 타일링 2 (0) | 2022.11.04 |