https://www.acmicpc.net/problem/17521
17521번: Byte Coin
입력은 표준입력을 사용한다. 첫 번째 줄에 요일 수를 나타내는 양의 정수 n과 초기 현금 W(1 ≤ n ≤ 15, 1 ≤ W ≤ 100,000)가 주어진다. 다음 n 개의 줄에서, i번째 줄은 i일의 바이트 코인 가격을 나
www.acmicpc.net
문제 풀이
그래프가 위로 올라가다 꺾이는 지점(고점)에서는 팔고, 그래프가 내려가다 올라가는 지점(저점)에서는 구매하는 식으로 코들를 작성했다.
다음날의 코인 가격을 알 수 있기 때문에 쉽게 구현할 수 있었다.
소스 코드
#include <iostream>
using namespace std;
long long c_price[51] = { 0 };
int main() {
long long n, W;
cin >> n >> W;
for (int i = 0; i < n; i++) {
cin >> c_price[i];
}
long long coin_cnt = 0;
for (int i = 0; i < n - 1; i++) {
if (coin_cnt == 0) {
if (c_price[i] < c_price[i + 1]) {
coin_cnt = W / c_price[i];
W = W % c_price[i];
}
else {
continue;
}
}
else {
if (c_price[i] > c_price[i + 1]) {
W += coin_cnt * c_price[i];
coin_cnt = 0;
}
else {
continue;
}
}
}
W += coin_cnt * c_price[n - 1];
cout << W << '\n';
}
'알고리즘' 카테고리의 다른 글
[백준] 14753번 MultiMax C++ 문제풀이 (0) | 2023.10.16 |
---|---|
[백준] 17626번 Four Squares C++ 문제풀이 (1) | 2023.10.13 |
[백준] 16283번 FARM C++ 문제풀이 (0) | 2023.10.12 |
[백준] 20040번 사이클 게임 C++ 문제풀이 (0) | 2023.10.05 |
[백준] 20044번 Project Teams C++ 문제풀이 (0) | 2023.10.03 |