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

[๋ฐฑ์ค€,c++] 20546๋ฒˆ - ๊ธฐ์ ์˜ ๋งค๋งค๋ฒ•

by ์•ˆ์ฃผํ˜• 2022. 9. 15.

๋ฌธ์ œ

 

20546๋ฒˆ: ๐Ÿœ ๊ธฐ์ ์˜ ๋งค๋งค๋ฒ• ๐Ÿœ

1์›” 14์ผ ๊ธฐ์ค€ ์ค€ํ˜„์ด์˜ ์ž์‚ฐ์ด ๋” ํฌ๋‹ค๋ฉด "BNP"๋ฅผ, ์„ฑ๋ฏผ์ด์˜ ์ž์‚ฐ์ด ๋” ํฌ๋‹ค๋ฉด "TIMING"์„ ์ถœ๋ ฅํ•œ๋‹ค. ๋‘˜์˜ ์ž์‚ฐ์ด ๊ฐ™๋‹ค๋ฉด "SAMESAME"์„ ์ถœ๋ ฅํ•œ๋‹ค. ๋ชจ๋“  ๊ฒฐ๊ณผ ๋”ฐ์˜ดํ‘œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

 

์ฝ”๋“œ

#include <iostream>
#include <vector>

using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int N; cin>>N;
    vector<int> v;
    
    for(int i=0; i<14; i++){
        int inp; cin>>inp;
        v.push_back(inp);
    }
    
    int jun = 0, sung = 0;
    int _N = N;
    for(auto it: v){    // ์ค€ํ˜„์ด์˜ ๋งค์ˆ˜
        if(it <= _N){
            jun = _N / it;
            _N = _N % it;
            break;
        }
    }
    jun = _N + (jun * v[13]);  // ์ค€ํ˜„์ด์˜ 14์ผ๋‚ ์˜ ๋งค๋„
   
    int cnt = 0;
    int buy_idx = 1e9;
    for(int i=1; i<v.size(); i++){
        if(v[i] < v[i-1]) cnt++;
        else cnt = 0;
        if(cnt >= 3){   // 3์ผ ์—ฐ์† ํ•˜๋ฝํ–ˆ์„ ๊ฒฝ์šฐ
            if(v[i] <= N){  // ๋งค์ˆ˜ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒฝ์šฐ
                sung += N / v[i];    // ์„ฑ๋ฏผ์ด์˜ ๋งค์ˆ˜
                N = N % v[i];
                buy_idx = i;    // ๋งค์ˆ˜์ผ ๊ธฐ์–ต
            }
        }
    }
    cnt = 0;
    bool flag = false;
    for(int i=buy_idx+1; i<v.size(); i++){
        if(v[i] > v[i-1]) cnt++;
        else cnt = 0;
        if(cnt >= 3){   // 3์ผ ์—ฐ์† ์ƒ์Šนํ–ˆ์„ ๊ฒฝ์šฐ
            flag = true;    // ๋งค๋„๋ฅผ ํ–ˆ์Œ์„ ๊ธฐ๋ก
            sung = sung * v[i];    // ์„ฑ๋ฏผ์ด์˜ ๋งค๋„
            break;
        }
    }
    
    if(!flag) sung = N + (sung * v[13]);  // ๋งค๋„๋ฅผ ๋ชปํ–ˆ์„ ๊ฒฝ์šฐ 14์ผ์—๋Š” ํ•„์ˆ˜๋กœ ๋งค๋„ํ•ด์•ผํ•จ
    
    if(sung > jun) cout<<"TIMING";
    else if(sung < jun) cout<<"BNP";
    else cout<<"SAMESAME";
}

 

ํ’€์ด

๋ฌธ์ œ ์กฐ๊ฑด ๊ทธ๋Œ€๋กœ ๊ตฌํ˜„๋งŒ ํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

  • ์ค€ํ˜„์ด๋Š” ๋จผ์ € ์ฒ˜์Œ์œผ๋กœ ๋งค์ˆ˜๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ ์ด ์žˆ์œผ๋ฉด ๋ฌด์กฐ๊ฑด ๊ทธ๋‚ ์— ์ „๋ถ€ ๋งค์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ค€ํ˜„์ด๋Š” ๋ฌด์กฐ๊ฑด 14์ผ ๋‚  ๋งค๋„ํ•ฉ๋‹ˆ๋‹ค. 1์›” 14์ผ์˜ ์ž์‚ฐ์€ (ํ˜„๊ธˆ + 1์›” 14์ผ์˜ ์ฃผ๊ฐ€ × ์ฃผ์‹ ์ˆ˜)๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
  • ์„ฑ๋ฏผ์ด๋Š” ์ „์ผ ๋Œ€๋น„ 3์ผ ์—ฐ์† ๊ฐ€๊ฒฉ์ด ์ƒ์Šนํ–ˆ์„ ๋•Œ ํ•ด๋‹น ๋‚ ์— ๋งค์ˆ˜๋ฅผ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ „๋ถ€ ๋งค์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ ์ด๋Ÿฌํ•œ ๋‚ ์ด ์—†๋‹ค๋ฉด ๋งค์ˆ˜ ์ž์ฒด๋ฅผ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์„ฑ๋ฏผ์ด๋Š” ์ „์ผ ๋Œ€๋น„ 3์ผ ์—ฐ์† ๊ฐ€๊ฒฉ์ด ํ•˜๋ฝํ–ˆ์„ ๋•Œ ์ „๋ถ€ ๋งค๋„ํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€