๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ณต๋ถ€/C++

๋ฐฑ์ค€ 15953๋ฒˆ : ์ƒ๊ธˆ ํ—Œํ„ฐ with C++

๋ฌธ์ œ

2017๋…„์— ์ด์–ด, 2018๋…„์—๋„ ์นด์นด์˜ค ์ฝ”๋“œ ํŽ˜์Šคํ‹ฐ๋ฒŒ์ด ๊ฐœ์ตœ๋œ๋‹ค!

์นด์นด์˜ค ์ฝ”๋“œ ํŽ˜์Šคํ‹ฐ๋ฒŒ์—์„œ ๋น ์งˆ ์ˆ˜ ์—†๋Š” ๊ฒƒ์€ ๋ฐ”๋กœ ์ƒ๊ธˆ์ด๋‹ค. 2017๋…„์— ๊ฐœ์ตœ๋œ ์ œ1ํšŒ ์ฝ”๋“œ ํŽ˜์Šคํ‹ฐ๋ฒŒ์—์„œ๋Š”, ๋ณธ์„  ์ง„์ถœ์ž 100๋ช… ์ค‘ 21๋ช…์—๊ฒŒ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ธฐ์ค€์œผ๋กœ ์ƒ๊ธˆ์„ ๋ถ€์—ฌํ•˜์˜€๋‹ค.

 

์ˆœ์œ„์ƒ๊ธˆ์ธ์›
1๋“ฑ 500๋งŒ์› 1๋ช…
2๋“ฑ 300๋งŒ์› 2๋ช…
3๋“ฑ 200๋งŒ์› 3๋ช…
4๋“ฑ 50๋งŒ์› 4๋ช…
5๋“ฑ 30๋งŒ์› 5๋ช…
6๋“ฑ 10๋งŒ์› 6๋ช…

2018๋…„์— ๊ฐœ์ตœ๋  ์ œ2ํšŒ ์ฝ”๋“œ ํŽ˜์Šคํ‹ฐ๋ฒŒ์—์„œ๋Š” ์ƒ๊ธˆ์˜ ๊ทœ๋ชจ๊ฐ€ ํ™•๋Œ€๋˜์–ด, ๋ณธ์„  ์ง„์ถœ์ž 64๋ช… ์ค‘ 31๋ช…์—๊ฒŒ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ธฐ์ค€์œผ๋กœ ์ƒ๊ธˆ์„ ๋ถ€์—ฌํ•  ์˜ˆ์ •์ด๋‹ค.

์ˆœ์œ„์ƒ๊ธˆ์ธ์›
1๋“ฑ 512๋งŒ์› 1๋ช…
2๋“ฑ 256๋งŒ์› 2๋ช…
3๋“ฑ 128๋งŒ์› 4๋ช…
4๋“ฑ 64๋งŒ์› 8๋ช…
5๋“ฑ 32๋งŒ์› 16๋ช…

์ œ์ด์ง€๋Š” ์ž์‹ ์ด ์ฝ”๋“œ ํŽ˜์Šคํ‹ฐ๋ฒŒ์— ์ถœ์ „ํ•˜์—ฌ ๋ฐ›์„ ์ˆ˜ ์žˆ์„ ์ƒ๊ธˆ์ด ์–ผ๋งˆ์ธ์ง€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค. ๊ทธ๋Š” ์ž์‹ ์ด ๋‘ ๋ฒˆ์˜ ์ฝ”๋“œ ํŽ˜์Šคํ‹ฐ๋ฒŒ ๋ณธ์„  ๋Œ€ํšŒ์—์„œ ์–ป์„ ์ˆ˜ ์žˆ์„ ์ด ์ƒ๊ธˆ์ด ์–ผ๋งˆ์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด, ์ƒ์ƒ๋ ฅ์„ ๋ฐœํœ˜ํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฐ€์ •์„ ํ•˜์˜€๋‹ค.

  • ์ œ1ํšŒ ์ฝ”๋“œ ํŽ˜์Šคํ‹ฐ๋ฒŒ ๋ณธ์„ ์— ์ง„์ถœํ•˜์—ฌ a๋“ฑ(1 ≤ a ≤ 100)๋“ฑ์„ ํ•˜์˜€๋‹ค. ๋‹จ, ์ง„์ถœํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด a = 0์œผ๋กœ ๋‘”๋‹ค.
  • ์ œ2ํšŒ ์ฝ”๋“œ ํŽ˜์Šคํ‹ฐ๋ฒŒ ๋ณธ์„ ์— ์ง„์ถœํ•˜์—ฌ b๋“ฑ(1 ≤ b ≤ 64)๋“ฑ์„ ํ•  ๊ฒƒ์ด๋‹ค. ๋‹จ, ์ง„์ถœํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด b = 0์œผ๋กœ ๋‘”๋‹ค.

์ œ์ด์ง€๋Š” ์ด๋Ÿฌํ•œ ๊ฐ€์ •์— ๋”ฐ๋ผ, ์ž์‹ ์ด ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ด ์ƒ๊ธˆ์ด ์–ผ๋งˆ์ธ์ง€๋ฅผ ์•Œ๊ณ  ์‹ถ์–ดํ•œ๋‹ค.

์ž…๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ œ์ด์ง€๊ฐ€ ์ƒ์ƒ๋ ฅ์„ ๋ฐœํœ˜ํ•˜์—ฌ ๊ฐ€์ •ํ•œ ํšŸ์ˆ˜ T(1 ≤ T ≤ 1,000)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

๋‹ค์Œ T๊ฐœ ์ค„์—๋Š” ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ œ์ด์ง€๊ฐ€ ํ•ด๋ณธ ๊ฐ€์ •์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ์ค„์—๋Š” ๋‘ ๊ฐœ์˜ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜ a(0 ≤ a ≤ 100)์™€ b(0 ≤ b ≤ 64)๊ฐ€ ๊ณต๋ฐฑ ํ•˜๋‚˜๋ฅผ ์‚ฌ์ด๋กœ ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

๊ฐ ๊ฐ€์ •์ด ์„ฑ๋ฆฝํ•  ๋•Œ ์ œ์ด์ง€๊ฐ€ ๋ฐ›์„ ์ƒ๊ธˆ์„ ์› ๋‹จ์œ„์˜ ์ •์ˆ˜๋กœ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค. ์ž…๋ ฅ์ด ๋“ค์–ด์˜ค๋Š” ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

#include <iostream>
using namespace std;

int main() {
    int R1[6] = { 500, 300, 200, 50, 30, 10 }; // 1ํšŒ ์ƒ๊ธˆ
    int R2[5] = { 512, 256, 128, 64, 32 };    // 2ํšŒ ์ƒ๊ธˆ

    int T = 0;  // ๊ฐ€์ •ํ•œ ํšŸ์ˆ˜ : T
    cin >> T;

    int R[1001] = { 0, };    // ๊ฐ€์ • ์‹œ ์ด ๋ฐ›์„ ์ƒ๊ธˆ ์ดˆ๊ธฐํ™”

    for (int i = 0; i < T; i++) {

        int a = 0, b = 0;   // 1ํšŒ์ฐจ ๋“ฑ์ˆ˜ : a, 2ํšŒ์ฐจ ๋“ฑ์ˆ˜ : b
        cin >> a >> b;

        if (a > 0) {
            for (int j = 1; j <= 6; j++) {    // 1ํšŒ์ฐจ ๋“ฑ์ˆ˜ ์ฐพ๊ธฐ
                a -= j;
                if (a <= 0) {
                    R[i] += R1[j - 1];  // ๋“ฑ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ์ƒ๊ธˆ ๋”ํ•˜๊ธฐ
                    break;
                }
            }
        }
        
        if (b > 0) {
            int minus = 1;
            for (int j = 1; j <= 5; j++) {    // 2ํšŒ์ฐจ ๋“ฑ์ˆ˜ ์ฐพ๊ธฐ
                b -= minus;
                minus *= 2;
                if (b <= 0) {
                    R[i] += R2[j - 1];  // ๋“ฑ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” ์ƒ๊ธˆ ๋”ํ•˜๊ธฐ
                    break;
                }
            }
        }
        
    }

    for (int i = 0; i < T; i++) {   // ๊ฐ ์ƒ๊ธˆ ์ถœ๋ ฅํ•˜๊ธฐ
        cout << R[i] * 10000 << "\n";
    }

    return 0;
}

์ œ์ถœ์„ ํ–ˆ์„ ๋•Œ ๋น ๋ฅธ ์†๋„๋กœ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค๊ฐ€ ๋–ด๋‹ค! :)

C++์€ C์–ธ์–ด๋ณด๋‹ค ์—ฐ์‚ฐ์ด ๋นจ๋ผ ์‹œ๊ฐ„์ดˆ๊ณผ์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ์ž˜ ๋œจ์ง€ ์•Š๋Š”๊ฒƒ ๊ฐ™๋‹ค.

๊ธฐ์—…๋“ค์—์„œ ๋ณด๋Š” ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋„ C์–ธ์–ด ๋ณด๋‹ค๋Š” C++์„ ์ฃผ๋กœ ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— C++์œ„์ฃผ๋กœ ํ•™์Šต์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค!

 

๋‹ค๋ฅธ ๋ถ„๋“ค์ด ์ง  ์ฝ”๋“œ๋ฅผ ๋ณด์•˜๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ๊ทธ๋ƒฅ ๋‹จ์ˆœํ•˜๊ฒŒ ํ‘ผ ๋ถ„๋“ค์ด ๋งŽ์•˜๋‹ค.

์กฐ๊ธˆ ๋” ๋‹จ์ˆœํ™”ํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™๋‹ค! ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ฒŒ ์ƒ๊ฐํ•œ ๊ฒƒ ๊ฐ™๋‹ค.