๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm/BOJ

[BOJ] ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ(2579)

[๋ฐฑ์ค€(BOJ)] ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ(2579) C++

๋ฌธ์ œ : BOJ_2579๋ฒˆ ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ

๋ฌธ์ œ ์„ค๋ช…

DP

๊ฐ ๊ณ„๋‹จ๋งˆ๋‹ค ์ ์ˆ˜๊ฐ€ ์žˆ๊ณ , ๋„์ฐฉ ์ง€์ ๊นŒ์ง€ ๊ณ„๋‹จ์„ ์˜ค๋ฅด๋ฉฐ ์ ์ˆ˜๋ฅผ ๋”ํ•ด์„œ ์ตœ๋Œ“๊ฐ’์ด ๋‚˜์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ๊ณ„๋‹จ์€ ํ•œ ๋ฒˆ์— ํ•œ ๊ณ„๋‹จ์ด๋‚˜ ๋‘ ๊ณ„๋‹จ์”ฉ ์˜ค๋ฅผ ์ˆ˜ ์žˆ๊ณ , ์„ธ ๊ฐœ์˜ ๊ณ„๋‹จ์„ ์—ฐ์†ํ•ด์„œ ๋ฐŸ์„ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰ ๋„์ฐฉ ์ง€์ ์˜ ๊ณ„๋‹จ์€ ๋ฐ˜๋“œ์‹œ ๋ฐŸ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.


Solution

dp๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

dp[ํ˜„์žฌ ๊ณ„๋‹จ ์ธ๋ฑ์Šค][์ด์ „ ๊ณ„๋‹จ๊ณผ ์—ฐ์†ํ•ด์„œ ๋ฐŸ์•˜๋Š”์ง€์˜ ์œ ๋ฌด] = ํ˜„์žฌ ๊ณ„๋‹จ๊นŒ์ง€์˜ ์ตœ๋Œ“๊ฐ’์œผ๋กœ dp ์‹์„ ์งœ๋ดค์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ณ„๋‹จ์—์„œ ์ด์ „ ๊ณ„๋‹จ๊ณผ ์—ฐ์†ํ•ด์„œ ๋ฐŸ์ง€ ์•Š์•˜๋‹ค๋ฉด, ํ˜„์žฌ ๊ณ„๋‹จ ์ธ๋ฑ์Šค-2์˜ ๊ณ„๋‹จ์—์„œ์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ฐฑ์‹ ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ํ˜„์žฌ๋ณด๋‹ค 2๊ฐ€ ๋‚ฎ์€ ์ธ๋ฑ์Šค์˜ ๊ณ„๋‹จ์€ ์ด์ „ ๊ณ„๋‹จ๊ณผ ์—ฐ์†ํ•ด์„œ ๋ฐŸ์€ ๊ฒฝ์šฐ์™€ ์—ฐ์†ํ•ด์„œ ๋ฐŸ์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋‘˜ ์ค‘์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ฐฑ์‹ ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ๊ณ„๋‹จ์—์„œ ์ด์ „ ๊ณ„๋‹จ๊ณผ ์—ฐ์†ํ•ด์„œ ๋ฐŸ๋Š”๋‹ค๋ฉด, ์ด์ „ ๊ณ„๋‹จ์—์„œ ์—ฐ์†ํ•ด์„œ ๋ฐŸ์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ํ˜„์žฌ ๊ณ„๋‹จ์˜ ์ ์ˆ˜๋ฅผ ๋”ํ•ด์ฃผ๋ฉด ์ตœ๋Œ“๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค.


Description

  • ์ฒซ ๋ฒˆ์งธ ๊ณ„๋‹จ์— ๋Œ€ํ•ด์„ , dp[1][0]=1๋ฒˆ์งธ ๊ณ„๋‹จ ์ ์ˆ˜, dp[1][1]=0์œผ๋กœ ํ• ๋‹นํ•ด ์ฃผ๊ณ  ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n;
int dp[301][2];
vector<int> adj;
int main(){
    cin >> n;
    adj.resize(n+1);
    for(int i=1; i<=n; i++){
        cin >> adj[i];
    }
    dp[1][0]=adj[1];
    dp[1][1]=0;
    for(int i=2;i<=n;i++){
        dp[i][0]=max(dp[i-2][0],dp[i-2][1]);
        dp[i][0]+=adj[i];
        dp[i][1]=dp[i-1][0] + adj[i];
    }
    cout << max(dp[n][0],dp[n][1]) << '\n';
    return 0;
}

'Algorithm > BOJ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[BOJ] Thread Knots(17976)  (0) 2022.03.13
[BOJ] LCS(9251)  (0) 2022.03.12
[BOJ] ์ด์ง„ ํŠธ๋ฆฌ(13325)  (0) 2022.03.12
[BOJ] ํ‡ด์‚ฌ(14501)  (0) 2022.03.12
[BOJ] ํ‰๋ฒ”ํ•œ ๋ฐฐ๋‚ญ(12865)  (0) 2022.03.12