본문 바로가기
알고리즘/백준 문제

11501 - 주식

by HDobby 2023. 3. 10.

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

 

11501번: 주식

입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타

www.acmicpc.net

생각해 보기

  • 주식은 하루에 하나 씩 살 수 있다.
  • 앞에서 시작을 할 경우 팔 시기를 알 수 없다.
  • 뒤에서 부터 시작을 해서 가장 비싼 금액을 저장해 두고 현재 금액과 비교하여 판매하면 쉽다.

코드

#include<iostream>
#include<vector>

using namespace std;

int T,N;

void input(vector<int> &nums){
    cin>>N;
    
    int tmp;
    while(N--){
        cin>>tmp;
        nums.push_back(tmp);
    }
}

void solution(vector<int> &nums){
    long long ret=0;
    int maxn=0;
    for(int i=nums.size()-1;i>=0;--i){
        int num=nums[i];
        if(maxn>num)
            ret+=maxn-num;
        else
            maxn=num;
    }
    cout<<ret<<'\n';
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin>>T;
    while(T--){
        vector<int> nums;
        input(nums);
        solution(nums);
    }

    return 0;
}

728x90

'알고리즘 > 백준 문제' 카테고리의 다른 글

4190 - 불!  (0) 2023.06.22
2304 - 창고 다각형  (0) 2023.03.10
20006 - 랭킹전 대기열  (0) 2023.03.08
22233 - 가희와 키워드  (0) 2023.03.08
19637 - IF 좀 대신 써줘  (0) 2023.03.07

댓글