๐Ÿ’œ๊ฐœ๋ฐœ๊ณผ ์ผ์ƒ (โ‰ง∇โ‰ฆ)๏พ‰

[๋ฐฑ์ค€ c++] 14501 ํ‡ด์‚ฌ (์‹ค3) ๋ณธ๋ฌธ

CS/๋ฐฑ์ค€

[๋ฐฑ์ค€ c++] 14501 ํ‡ด์‚ฌ (์‹ค3)

๊ฐ•์˜์„œ 2022. 11. 16. 17:59

๐Ÿ“Œ ๋ฌธ์ œ

N์ผ์ด ์ฃผ์–ด์ง€๋งŒ ํ•˜๋ฃจ ๋ณ„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ์ฃผ์–ด์ง„๋‹ค.

ํ•ด๋‹น ์ผ์ด ์–ธ์ œ ์ฃผ์–ด์ง€๋Š”์ง€์™€ ๊ทธ ์ผ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ๊นŒ์ง€ ํ•„์š”ํ•œ ์‹œ๊ฐ„์ด ์ฃผ์–ด์ง„๋‹ค.

์ฃผ์–ด์ง„ ์ผ ๋ฆฌ์ŠคํŠธ์—์„œ ์ผ์„ ๊ณจ๋ผ ํ–ˆ์„ ๋•Œ ๊ฐ€์žฅ ์ˆ˜์ž…์ด ๋†’์„ ๋•Œ์˜ ์ˆ˜์ž…์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ๋‹ค.

 

๋ฌธ์ œ๋ฅผ ์ฒ˜์Œ ๋ดค์„ ๋• ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฌธ์ œ์ธ๊ฐ€? ์‹ถ์—ˆ๋Š”๋ฐ

์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์ด์ „์— ํŒ๋‹จํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— brute force ๋ฌธ์ œ๋ผ๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. 

1๋…„์ „, ๋™๊ธฐ๋“ค์ด๋ž‘ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์Šคํ„ฐ๋””๋ฅผ ํ–ˆ์„ ๋•Œ ํ’€์—ˆ๋Š” ๋“ฏ ํ•˜๋‹ค...

๊ณผ๊ฑฐ์— ๋‚ด๊ฐ€ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„์„ ํ–ˆ๋‹ค. 1๋…„์ „ ์ฝ”๋“œ๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋„๋Ÿฝ๋‹ค...

 

์‚ฌ์‹ค, ์žฌ๊ท€ํ•จ์ˆ˜๋Š” ์œ„ํ—˜ํ•œ ๋ฐฉ๋ฒ•์ด๊ณ  ๋ถˆํ•„์š”ํ•˜๊ฒŒ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ๋ฐฑ์ค€ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ์ž์ฃผ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์—

๋‚ด ์ฝ”๋“œ๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์•„๋‹Œ ๋“ฏ ํ•˜๋‹ค. ๋ฌผ๋ก  C++๋Š” ์‹œ๊ฐ„๋ณต์žก๋„ ๊นกํŒจ๊ธฐ ๋•Œ๋ฌธ์— ์žฌ๊ท€๋กœ ๋ฌธ์ œ๋ฅผ ์ž‘์„ฑํ•ด๋„ ์ถฉ๋ถ„ํžˆ ํ†ต๊ณผ๊ฐ€ ๊ฐ€๋Šฅํ–ˆ๋‹ค...ใ„ทใ„ท

์ฐธ๊ณ ๋กœ ๋งํ•˜๋ฉด, ๋‚˜ ์ œ์™ธ ๋‹ค๋ฅธ ์นœ๊ตฌ๋“ค์€ python์œผ๋กœ DP ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ œ์ถœํ•˜๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋œฌ๋‹ค๊ณ  ํ•œ๋‹ค.

python์ด ๋Š๋ฆฐ๊ฑด์ง€ C++์ด ๋Š๋ฆฐ๊ฑด์ง€....

 

 

๐Ÿ’ป ์ •๋‹ต ์ฝ”๋“œ

/*
	2021 - 03 - 20 <brute-force>
	beakjun 14501
	KangYoungSeo

	๋ฐ˜๋ณต๋ฌธ 2๊ฐœ => O(N^2)
*/
#include <iostream>
using namespace std;

int time[16];
int pay[16];
int N;

int recursive(int idx) {

	if(idx > N) return 0;
	int FF = recursive(idx + 1);

	if (idx + time[idx] > N + 1) return FF;
	
	int TT = pay[idx] + recursive(idx + time[idx]);
	return TT > FF ? TT : FF;
}

int main() {
	scanf("%d", &N);
	for (int i = 1; i <= N; i++)
		scanf("%d %d", &time[i], &pay[i]);

	//using recursive function, search all of cases, and find max

	int max = recursive(1);
	printf("%d", max);
	return 0;
}

โฑ ๊ฒฐ๊ณผ