Algorithm/BOJ

[백준 알고리즘/C++/그리디] 17521 Byte Coin

pinevienna 2021. 2. 9. 15:34

 

 

바이트 코인의 등락과 사용 가능한 현금이 입력됐을 때, 최고 수익을 구하는 문제

 

 

주식(비트코인)은 오르기 전에 사고 오르고 나서 팔면 된다^^!

등락이 주어졌으니 그래프가 올라가기 전에 사고, 올라갔을 때 팔면 돈을 많이 벌 수 있다

즉 i번째 날보다 i+1번째 날에 coin price가 더 높으면 가진돈으로 코인을 몽땅 사고

i+1번째 날에 다 팔아버리면 된다

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
using namespace std;
 
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
 
    long long n, w, arr[15];
 
    cin >> n >> w;
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }
 
    long long stock;
    for (int i = 0; i < n - 1; i++) {
        if (arr[i] < arr[i + 1]) {
            stock = w / arr[i];
            w %= arr[i];
            w += stock * arr[i + 1];
        }
    }
 
    cout << w;
}
cs

 

오늘이 i+1번째 날인지 뭔지 계산하면 번거로우니까 i번째에 매수 매도를 한번에 해줬다