BOJ 17521, Byte Coin
ProblemSolving ·이 문제는 그리디? 구현? 문제입니다. 19년 ACM 예선에 나왔던 문제입니다.
풀이
현재 시세보다 다음의 시세가 더 비싸다면 현재에 사서 다음에 바로 갖다 팔면 됩니다.
이것만 구현하시면 됩니다.
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
typedef long long ll;
ll n, money, coin, arr[17];
int main()
{
scanf("%lld %lld", &n, &money);
for(ll i=1;i<=n;i++)
scanf("%d", &arr[i]);
for (ll i = 1; i < n; i++)
if (arr[i] < arr[i + 1])
coin = money / arr[i], money += coin * (arr[i+1]-arr[i]);
printf("%lld", money);
return 0;
}