λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Algorithm πŸ§‘πŸ»‍πŸ’»/λ°±μ€€(BOJ)

[λ°±μ€€,c++] 24498번 - blobnom

by μ•ˆμ£Όν˜• 2022. 3. 23.

문제

 

24498번: blobnom

블둭듀은 μ‹¬μ‹¬ν•΄μ„œ μ„œλ‘œλ₯Ό μ΄μš©ν•΄ $N$개의 탑을 λ§Œλ“€μ—ˆλ‹€. κ° νƒ‘μ˜ λ†’μ΄λŠ” κ·Έ 탑에 μžˆλŠ” λΈ”λ‘­μ˜ μˆ˜μ™€ κ°™λ‹€. μ—¬λŸ¬λΆ„μ€ λ‹€μŒ 행동을 $0$회 이상 ν•  수 μžˆλ‹€. 처음과 λ§ˆμ§€λ§‰μ΄ μ•„λ‹Œ 탑 μ€‘ ν•˜λ‚˜λ₯Ό μ„ 

www.acmicpc.net

 

μ½”λ“œ

#include <iostream>
#include <vector>

using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int N; cin>>N;
    vector<int>v,dp(N);
    
    for(int i=0; i<N; i++){
        int inp; cin>>inp;
        v.push_back(inp);
    }
    
    int ans = 0;
    
    for(int i=1; i<N-1; i++){
        dp[i]=v[i]+min(v[i-1],v[i+1]);
        ans = max(ans,dp[i]);
    }
    ans = max(ans, v[0]);
    ans = max(ans, v.back());
    cout<<ans;
}

 

풀이

λ°°μ—΄μ˜ ν˜„μž¬ κ°’μ—μ„œ μ–‘μͺ½ κ°’ 쀑에 μž‘μ€ 값을 λ”ν•΄μ„œ μ΅œμ’…μ μœΌλ‘œ μ–΄λŠ 값이 큰지 좜λ ₯ν•˜λ©΄ λ˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€. λ‹€λ§Œ 처음과 λ§ˆμ§€λ§‰μ΄ μ•„λ‹Œ 탑 쀑 ν•˜λ‚˜λ₯Ό μ„ νƒν•œλ‹€λŠ” 1번 쑰건 λ•Œλ¬Έμ— 인덱슀 1λΆ€ν„° N-1κΉŒμ§€ κ³„μ‚°ν•˜μ—¬μ•Ό ν•˜κ³  μ΅œμ’…μ μœΌλ‘œ 양끝 점과 ν˜„μž¬ κ°’ 쀑 큰 값을 ν•œλ²ˆ 더 λΉ„κ΅ν•΄μ„œ 좜λ ₯ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λŒ“κΈ€