https://www.acmicpc.net/problem/11501
11501번: 주식
문제 홍준이는 요즘 주식에 빠져있다. 그는 미래를 내다보는 눈이 뛰어나, 날 별로 주가를 예상하고 언제나 그게 맞아떨어진다. 매일 그는 아래 세 가지 중 한 행동을 한다. 주식 하나를 산다. 원
www.acmicpc.net
생각의 전환이 필요한 문제였다. 현재 주식값보다 제일 비싸지는 미래의 값을 찾아서 가장 이득이 많이 남을때 팔아버리면 되지만 앞에서부터 큰 값을 찾아가는 과정은 너무 시간이 오래걸렸다. 따라서 가장 먼 미래인 맨 뒤에서부터 이득이 가장 커지는 경우를 찾아가면 되었다. 현재 최대 주식 차익을 결정하기 위해서 가장 우선적으로 가장 먼 미래의 값을 찾아 점점 가까운 미래로 접근하면서 가장 이득이 클 때를 찾으면 되기 때문이다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int T;
cin >> T;
while(T--) {
int N;
long long int num;
long long int big = -1;
long long int sum = 0;
vector<int> v;
cin >> N;
while(N--) {
cin >> num;
v.push_back(num);
}
reverse(v.begin(), v.end()); //뒤에서부터 비교하기 위함
for(int i = 0; i < v.size(); i++) {
if(big < v[i]) {
big = v[i];
}
else {
sum += big - v[i];
}
}
cout << sum << '\n';
}
return 0;
}
'백준' 카테고리의 다른 글
백준11502 - 새 개의 소수 문제 (0) | 2020.05.21 |
---|---|
백준2696 - 중앙값 구하기 (0) | 2020.05.17 |
백준16162 - 가희와 3단 고음 (0) | 2020.05.13 |
백준18353 - 병사 배치하기 (0) | 2020.05.12 |
백준1240 - 노드사이의 거리 (0) | 2020.05.11 |