주식 가격 변동 개수 n을 입력받고
주식 가격을 순서에 따라 v1 ~ vn까지 차례대로 입력받는다
어떤 시점(t0)에서 주식을 사고 다른 시점(t1)에서 주식을 판다면
손실 금액은 주식 가격 차(t1 - t0)이다. 손실이 없으면 0임
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
int h = 0, l = 0, loss = 0;
cin >> n; cin.ignore();
for (int i = 0; i < n; i++)
{
int v;
cin >> v; cin.ignore();
if (i == 0)
{
h = l = v;
}
else if (i > 0)
{
if (v - h < loss) loss = v - h;
if (h < v)
{
h = v;
}
if (v < l)
{
l = v;
if (i == n - 1)
{
if (v - h < loss) loss = v - h;
}
else
{
if (l - h < loss)
{
if (abs(l - h) > abs(loss))
{
loss = l - h;
}
}
}
}
}
}
cout <<loss << endl;
}
처음 생각 : 현재가는 v로 어차피 계속 입력받으니까 현재값을 최댓값, 최저값과 계속 비교하면서 최저값에서 최댓값을 뺀 값이 기존의 loss보다 크면 loss에 그 값을 저장하고 마지막에는 loss값을 반환하자
if (v - h < loss) loss = v - h;
를 집어넣어줬다.