※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 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

+ Recent posts