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 |
댓글