※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 6005번 문제인 Cow Pinball이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/6005
6005번: Cow Pinball
The cows are playing that cool Japanese 'pinball' game called Pachinko. You've probably seen it, you drop a ball in the top and it hits nails on the way down, veering just a little left or right, until the ball comes out the bottom. This pachinko game is s
www.acmicpc.net
구슬이 어떤 못을 쳤을 때 그 시점까지 점수를 최대한 많이 얻으려면 이전 행의 가능한 양쪽의 못 중 더 많은 점수를 얻어올 수 있는 못을 치고 와야 함을 관찰하자.
위와 같은 점화관계를 이용해 dp로 문제를 해결할 수 있다. 각 행의 못마다 규칙적으로 번호를 매겨 복잡하지 않게 dp를 구현해주자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int R;
int arr[26][26];
int ans;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> R;
for (int r = 1; r <= R; r++) {
for (int c = 1; c <= r; c++) {
cin >> arr[r][c];
arr[r][c] += max(arr[r - 1][c - 1], arr[r - 1][c]);
}
}
for (int c = 1; c <= R; c++) ans = max(ans, arr[R][c]);
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 8598 // C++] Zając (1) | 2024.02.07 |
---|---|
[BOJ 8673 // C++] Krany (0) | 2024.02.06 |
[BOJ 11909 // C++] 배열 탈출 (0) | 2024.02.04 |
[BOJ 21318 // C++] 피아노 체조 (0) | 2024.02.03 |
[BOJ 16401 // C++] 과자 나눠주기 (0) | 2024.02.02 |