[백준/BOJ] 백준 17521번 : Byte Coin
2020. 11. 6. 01:29ㆍ알고리즘 문제풀이
처음일 때, 마지막일 때, 중간지점일 때의 상황을 고려하여 코인을 사고파는 선택을 한다.
코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
int n;
long long w;
long long b_coin = 0;
vector<int> s(15, 0);
int input;
cin >> n >> w;
for (int i = 0; i < n; i++)
{
cin >> input;
s[i] = input;
}
for (int i = 0; i < n; i++)
{
//처음일때
if (i == 0)
{
if (s[i] <= s[i + 1])
{
if (w != 0)
{
//살수있는 코인을 모두 산다
b_coin += w / s[i];
w = w % s[i];
}
}
}
//마지막 일때
else if (i == n - 1)
{
if (s[i - 1] <= s[i])
{
if (b_coin != 0)
{
//가지고 있는 코인을 모두 판다
w += b_coin * s[i];
b_coin = 0;
}
}
}
else
{
//이전에 내려오다가 다음에 올라가는 지점일때
if (s[i - 1] >= s[i] && s[i] < s[i + 1])
{
if (w != 0)
{
//살수 있는 코인을 모두 산다
b_coin += w / s[i];
w = w % s[i];
}
}
//이전에 올라오다가 다음에 내려가는 지점일때
else if (s[i - 1] <= s[i] && s[i] > s[i + 1])
{
if (b_coin != 0)
{
//팔수 있는 코인을 모두 판다
w += b_coin * s[i];
b_coin = 0;
}
}
}
}
cout << w;
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 7287번 : 등록 (0) | 2020.11.06 |
---|---|
[백준/BOJ] 백준 17626번 : Four Squares (0) | 2020.11.06 |
[백준/BOJ] 백준 17520번 : Balanced String (0) | 2020.11.06 |
[백준/BOJ] 백준 17976번 : Thread Knots (0) | 2020.11.05 |
[백준/BOJ] 백준 17979번 : What’s Mine is Mine (0) | 2020.11.05 |