hades

[Baekjoon] 1932๋ฒˆ: ์ •์ˆ˜ ์‚ผ๊ฐํ˜• ๋ณธ๋ฌธ

๐Ÿ‘Š PS/Algorithm

[Baekjoon] 1932๋ฒˆ: ์ •์ˆ˜ ์‚ผ๊ฐํ˜•

hades1 2024. 8. 19. 09:22

๐Ÿฅ… ๋ฌธ์ œ

https://www.acmicpc.net/problem/1932

 

๐Ÿ” ์„ค๊ณ„

์–ด๋–ค ์ˆ˜๊นŒ์ง€์˜ ๊ฒฝ๋กœ ์ƒ์˜ ํ•ฉ์€ ๋งจ ์œ„๋ถ€ํ„ฐ ์™ผ์ชฝ ์•„๋ž˜, ์˜ค๋ฅธ์ชฝ ์•„๋ž˜๋ฅผ ๊ณ„์† ์„ ํƒํ•˜์—ฌ ์–ป์–ด์ง€๋ฏ€๋กœ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ด์šฉํ•œ๋‹ค. ์ผ์ฐจ์› ๋ฐฐ์—ด์— ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋‹ด์•˜์„ ๋•Œ, ์–ด๋–ค ์ˆ˜๊ฐ€ n๋ฒˆ์งธ ์ค„์— ์žˆ๋‹ค๋ฉด, ์™ผ์ชฝ ์•„๋ž˜์— ์žˆ๋Š” ์ˆ˜๋Š” +n์— ์žˆ๊ณ , ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์— ์žˆ๋Š” ์ˆ˜๋Š” +(n+1)์— ์žˆ๋‹ค.

 

๐Ÿ‘Š ํ’€์ด

#include <iostream>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;

int n, number, k, result;
vector<int> triangle(1, -1);
vector<int> dp(500 * 501 / 2);

int main(void)
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cin >> n;

	for (int i = 1; i <= n; i++) {
		for (int j = 0; j < i; j++) {
			cin >> number;
			triangle.push_back(number);
		}
	}

	k = 1;
	dp[1] = triangle[1];
	result = dp[1];
	for (int i = 1; i < n; i++) {
		for (int j = 0; j < i; j++) {
			dp[k + i] = max(dp[k + i], dp[k] + triangle[k + i]);
			dp[k + i + 1] = max(dp[k + i + 1], dp[k] + triangle[k + i + 1]);
			result = max(max(result, dp[k + i]), dp[k + i + 1]);
			k++;
		}
	}

	cout << result << "\n";
	
	return 0;
}

'๐Ÿ‘Š PS > Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 1197๋ฒˆ: ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ  (0) 2024.09.02
[Baekjoon] 9663๋ฒˆ: N-Queen  (0) 2024.08.28
[Baekjoon] 15666๋ฒˆ: N๊ณผ M (12)  (0) 2024.08.13
[Baekjoon] 2638๋ฒˆ: ์น˜์ฆˆ  (0) 2024.08.13
15654๋ฒˆ: N๊ณผ M (5)  (0) 2024.08.12