๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 17521๋ฒˆ - Byte Coin

by ์•ˆ์ฃผํ˜• 2022. 8. 18.

๋ฌธ์ œ

 

17521๋ฒˆ: Byte Coin

์ž…๋ ฅ์€ ํ‘œ์ค€์ž…๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ค„์— ์š”์ผ ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์–‘์˜ ์ •์ˆ˜ n๊ณผ ์ดˆ๊ธฐ ํ˜„๊ธˆ W(1 ≤ n ≤ 15, 1 ≤ W ≤ 100,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ n ๊ฐœ์˜ ์ค„์—์„œ, i๋ฒˆ์งธ ์ค„์€ i์ผ์˜ ๋ฐ”์ดํŠธ ์ฝ”์ธ ๊ฐ€๊ฒฉ์„ ๋‚˜

www.acmicpc.net

 

์ฝ”๋“œ

#include <iostream>
#include <vector>
#define ll long long
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    ll n, w; cin>>n>>w;
    ll coin = 0;
    vector<int>v(n+1);
    for(int i=0; i<n; i++) cin>>v[i];
    
    for(int i=0; i<n; i++){
        if(v[i]<v[i+1]){    // ์ฝ”์ธ ๊ตฌ๋งค
            coin += w/v[i];
            w = w%v[i];
        }
        else{   // ์ฝ”์ธ ํŒ๋งค
            w += v[i]*coin;
            coin = 0;
        }
    }
    cout<<w;

}

 

ํ’€์ด

DP๋ฌธ์ œ์ธ๊ฐ€.. ๊ณ ๋ฏผํ–ˆ์ง€๋งŒ ๋‹จ์ˆœํžˆ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋งŒ ๋น„๊ตํ•ด์ฃผ๋ฉด ์†์‰ฝ๊ฒŒ ํ’€๋ฆฌ๋Š” ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

  • ์˜ค๋Š˜๋ณด๋‹ค ๋‚ด์ผ์ด ๋” ๋น„์‹ธ๋ฉด ์˜ค๋Š˜ ์ฝ”์ธ์„ ๊ตฌ๋งคํ•œ๋‹ค.
  • ์˜ค๋Š˜๋ณด๋‹ค ๋‚ด์ผ์ด ๋” ์‹ธ๋ฉด ์˜ค๋Š˜ ์ฝ”์ธ์„ ์ „๋ถ€ ํŒ๋งคํ•œ๋‹ค.

๋Œ“๊ธ€