[๋ฐฑ์ค€ 1074] Z

๋„์œคยท2023๋…„ 7์›” 5์ผ
0

์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด

๋ชฉ๋ก ๋ณด๊ธฐ
35/71

๐Ÿ”—์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ

๋ถ„ํ• ์ •๋ณต์„ ํ†ตํ•ด ํ•ด๊ฒฐํ•œ ๋ฌธ์ œ ๊ฐ„๋‹จํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฐ€์ง„ ๋ฌธ์ œ์ด์ง€๋งŒ ๋ถ„ํ• ์ •๋ณต์— ์ต์ˆ™ํ•˜์ง€ ์•Š์•„ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ ๋ฌธ์ œ์ด๋‹ค.. ์•ž์œผ๋กœ ๋ฌธ์ œ ํŽธ์‹์„ ํ•˜์ง€ ๋ง์•„์•ผ๊ฒ ๋‹ค..

๋ฌธ์ œ ๋ถ„์„

์ด ๋ฌธ์ œ๋Š” ๋ฐฐ์—ด์„ Z๋ชจ์–‘์œผ๋กœ ๊ณ„์†ํ•˜์—ฌ ํƒ์ƒ‰ํ•  ๋•Œ rํ–‰ c์—ด์„ ๋ช‡ ๋ฒˆ์งธ๋กœ ๋ฐฉ๋ฌธํ•˜๋Š”์ง€ ์•Œ์•„๋‚ด๋Š” ๋ฌธ์ œ์ด๋‹ค.

๋ฐœ์ƒ

๊ฒฐ๊ตญ์— rํ–‰ c์—ด์˜ ์œ„์น˜๋Š” 2X2 ๊ณต๊ฐ„์— ์žˆ๋Š” 4๊ฐœ์˜ ์š”์†Œ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํ˜„์žฌ ํƒ์ƒ‰ํ•˜๋Š” ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๊ฐ€ 2X2๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋ณด๋“œ๋ฅผ ๋‚˜๋ˆ„๋ฉฐ ๋ถ„ํ• ์ •๋ณต ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

  1. r๊ณผ c๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
  2. ํ˜„์žฌ ๋‚ด๊ฐ€ ํƒ์ƒ‰ํ•  ๊ณต๊ฐ„์ด ๋ณด๋“œ์— ๋ช‡ ์‚ฌ๋ถ„๋ฉด์— ์žˆ๋Š”์ง€ ์•Œ์•„๋‚ธ๋‹ค.
  3. ๋ณด๋“œ๋ฅผ ์‚ฌ๋ถ„๋ฉด์œผ๋กœ ์ถ•์†Œํ•œ๋‹ค.
  4. ๋ณด๋“œ์˜ ๊ณต๊ฐ„์ด 2X2๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

์ฝ”๋“œ

#include<iostream>
#include<cmath>

using namespace std;

int main(){
    int n;
    int r;
    int c;

    int answer = 0;

    cin >> n >> r >> c;

    while(n >= 0){
        --n;

        // 1 ์‚ฌ๋ถ„๋ฉด
        if(pow(2, n) > r && pow(2, n) > c){
            answer += 0;
        }
        // 2 ์‚ฌ๋ถ„๋ฉด
        else if(pow(2, n) > r && pow(2, n) <= c){
            c -= pow(2, n);
            answer += pow(2, n) * pow(2, n);
        }
        // 3 ์‚ฌ๋ถ„๋ฉด
        else if(pow(2, n) <= r && pow(2, n) > c){
            r -= pow(2, n);
            answer += pow(2, n) * pow(2, n) * 2;
        }
        // 4 ์‚ฌ๋ถ„๋ฉด
        else{
            c -= pow(2, n);
            r -= pow(2, n);
            answer += pow(2, n) * pow(2, n) * 3;
        }
    }

    cout << answer;
}
profile
Game Client Developer

0๊ฐœ์˜ ๋Œ“๊ธ€