[BOJ][C++] ๋ฐฑ์ค€ 20546๋ฒˆ: ๐Ÿœ ๊ธฐ์ ์˜ ๋งค๋งค๋ฒ• ๐Ÿœ

2024. 5. 26. 17:04ยท๐Ÿ’ญ Problem Solving/C++

๋ฌธ์ œ

https://www.acmicpc.net/problem/20546

ํ’€์ด

์„ฑ๋ฏผ(BNP)

  • ๋‚จ์€ ํ˜„๊ธˆ์œผ๋กœ ์ฃผ์‹์„ ์‚ด ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ์ฃผ์‹ ๋งค์ˆ˜

์ค€ํ˜„(TIMING)

  • 3์ผ ์—ฐ์† ๊ฐ€๊ฒฉ ์ƒ์Šน: ์ „๋Ÿ‰ ๋งค๋„
  • 3์ผ ์—ฐ์† ๊ฐ€๊ฒฉ ํ•˜๋ฝ: ์ „๋Ÿ‰ ๋งค์ˆ˜
  • ๋งค์ˆ˜ํ•  ๋•Œ๋Š” (์„ฑ๋ฏผ๊ณผ ๋˜‘๊ฐ™์ด) ๋‚จ์€ ํ˜„๊ธˆ์œผ๋กœ ์ฃผ์‹์„ ์‚ด ์ˆ˜ ์—†์„ ๋•Œ๊นŒ์ง€ ๋งค์ˆ˜

์ฝ”๋“œ

#include <iostream>
#include <vector>

using namespace std;

const int DAY = 14;

int bnp(int cash, vector<int> &price) {
    int stock = 0;

    for (int i = 0; i < DAY; i++) {
        while (cash - price[i] >= 0) {
            cash -= price[i];
            stock++;
        }
    }

    return stock * price[DAY - 1] + cash;
}

int timing(int cash, vector<int> &price) {
    int stock = 0, up = 0, down = 0;

    for (int i = 1; i < DAY; i++) {
        // ๊ฐ€๊ฒฉ ์ƒ์Šน, ํ•˜๋ฝ ์ฒดํฌ
        if (price[i - 1] < price[i]) {  // ๊ฐ€๊ฒฉ ์ƒ์Šน
            up++;
            down = 0;
        } else if (price[i - 1] > price[i]) {   // ๊ฐ€๊ฒฉ ํ•˜๋ฝ
            down++;
            up = 0;
        } else {    // ์ฃผ๊ฐ€ ๋™์ผ
            up = 0;
            down = 0;
        }

        // ๋งค๋„, ๋งค์ˆ˜
        if (up == 3) { // 3์ผ ์—ฐ์† ๊ฐ€๊ฒฉ ์ƒ์Šน
            while (stock) {  // ์ „๋Ÿ‰ ๋งค๋„
                cash += price[i];
                stock--;
            }
            up = 0;
        } else if (down == 3) {  // 3์ผ ์—ฐ์† ๊ฐ€๊ฒฉ ํ•˜๋ฝ
            while (cash - price[i] >= 0) {  // ์ „๋Ÿ‰ ๋งค์ˆ˜
                cash -= price[i];
                stock++;
            }
            down = 0;
        }
    }

    return stock * price[DAY - 1] + cash;
}

int main() {
    int cash, bnp_result, timing_result;
    vector<int> price(DAY, 0);

    // ์ž…๋ ฅ
    cin >> cash;
    for (int &i: price) {
        cin >> i;
    }

    // ์—ฐ์‚ฐ
    bnp_result = bnp(cash, price);
    timing_result = timing(cash, price);

    // ์ถœ๋ ฅ
    if (bnp_result > timing_result)
        cout << "BNP";
    else if (bnp_result < timing_result)
        cout << "TIMING";
    else
        cout << "SAMESAME";

    return 0;
}

'๐Ÿ’ญ Problem Solving > C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][C++] ์Šคํ‚ฌํŠธ๋ฆฌ  (0) 2024.05.31
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][C++] ํ‚คํŒจ๋“œ ๋ˆ„๋ฅด๊ธฐ  (0) 2024.05.27
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][C++] ์ฒด์œก๋ณต  (0) 2024.05.24
[BOJ][C++] ๋ฐฑ์ค€ 1212๋ฒˆ: 8์ง„์ˆ˜ 2์ง„์ˆ˜  (0) 2024.05.24
[BOJ][C++] ๋ฐฑ์ค€ 9184๋ฒˆ: ์‹ ๋‚˜๋Š” ํ•จ์ˆ˜ ์‹คํ–‰  (0) 2024.05.12
'๐Ÿ’ญ Problem Solving/C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][C++] ์Šคํ‚ฌํŠธ๋ฆฌ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][C++] ํ‚คํŒจ๋“œ ๋ˆ„๋ฅด๊ธฐ
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค][C++] ์ฒด์œก๋ณต
  • [BOJ][C++] ๋ฐฑ์ค€ 1212๋ฒˆ: 8์ง„์ˆ˜ 2์ง„์ˆ˜
0=2.
0=2.
  • 0=2.
    0=2
    0=2.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (104)
      • ๐Ÿ“‚ Project (2)
        • Paint the City (2)
      • ๐Ÿ’ญ Problem Solving (42)
        • C++ (28)
        • Java (14)
      • ๐Ÿ“ Study (17)
        • React (1)
        • Java (16)
      • ๐Ÿ’ป CS (11)
        • ๋ฉด์ ‘์„ ์œ„ํ•œ CS ์ „๊ณต์ง€์‹ ๋…ธํŠธ (2)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (9)
      • ๐Ÿƒ‍โ™€๏ธ Activities (32)
        • Web Front-End Basic Study (6)
        • 42 Cursus (26)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    dynamic programming
    knapsack
    ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ
    ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    java
    react
    HTML
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    ํŠธ๋ฆฌ
    ๋ฐฑํŠธ๋ž˜ํ‚น
    ๋งต
    CSS
    42๊ฒฝ์‚ฐ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๊ตฌํ˜„
    ์‹œ๋ฎฌ๋ ˆ์ด์…˜
    git
    makefile
    ๋ฐฑ์ค€
    BFS
    VR
    CS
    .h
    La Piscine
    ์ •๋ ฌ
    dfs
    swea
    unity
    github
    C
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
0=2.
[BOJ][C++] ๋ฐฑ์ค€ 20546๋ฒˆ: ๐Ÿœ ๊ธฐ์ ์˜ ๋งค๋งค๋ฒ• ๐Ÿœ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”