반응형
https://www.acmicpc.net/problem/17521
greedy문제였습니다.
📕 풀이방법
📔 입력 및 초기화
n, w, coinNum, 일차원 배열 coinPrice를 long long형으로 선언합니다.
📔 풀이과정
coinPrice[i] < coinPrice[i + 1] 이라면 i번째 날에서 매수, i+1번째 날에 매도하는 것이 무조건 이익을 취할 수 있는 방법입니다. i번째 산 코인의 개수를 coinNum에 저장한 뒤, i번쨰 날에 구입 후 남은 돈 w에서 i+1번째 coinNum만큼 판 가격을 w에 더해주면 됩니다.
📔 정답출력
보유현금 w를 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n, w, coinNum, coinPrice[100001];
int main(){
cin >> n >> w;
for(int i = 1; i <= n; i++) cin >> coinPrice[i];
for(int i = 1; i <= n - 1; i++){
if(coinPrice[i] < coinPrice[i+1]){
coinNum = w / coinPrice[i];
w %= coinPrice[i];
w += coinPrice[i+1] * coinNum;
}
}
cout << w;
}
'Algorithm > Greedy' 카테고리의 다른 글
(C++) - 백준(BOJ) 1388 : 바닥 장식 (0) | 2021.10.05 |
---|---|
(C++) - leetcode 2007번 : Find Original Array From Doubled Array (0) | 2021.09.29 |
(C++) - 백준(BOJ) 14916번 : 거스름돈 (0) | 2021.09.06 |
(C++) - 백준(BOJ) 18234번 : 당근 훔쳐 먹기 (0) | 2021.08.31 |
(C++) - 백준(BOJ) 6068번 : 시간 관리하기 (0) | 2021.08.20 |