Algorithm 🧑🏻‍💻/백준(BOJ)

[백준,c++] 25644번 - 최대 상승

dkswnkk 2022. 9. 28. 00:00

문제

 

25644번: 최대 상승

미래를 예측하는 능력이 있는 정균이는 앞으로 $N$일간 ANA 회사의 주가가 어떻게 변하는지 정확히 예측할 수 있다. 정균이는 예측한 결과를 바탕으로 ANA 회사의 주식 한 주를 적당한 시점에 사고

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;
    for(int i=0; i<N; i++){
        int inp; cin>>inp;
        v.push_back(inp);
    }
    int max_num = -1;
    int ans = 0;
    for(int i=v.size()-1; i>=0; i--){
        if(v[i] > max_num){
            max_num = v[i];
        }
        ans = max(ans, max_num - v[i]);
    }
    cout<<ans;
}

 

풀이

단순히 가장 싼 날에 사서 가장 비싼 날에 팔면 되는 문제입니다. 

배열의 마지막부터 탐색을 시작하여 지금 까지 (가장 비싼 가격 - 현재 가격)ans = max(ans, max_num - v[i])를 수행하면 답을 얻을 수 있습니다.