Home > Algorithm > BOJ > [BOJ] 28239๋ฒˆ ๋ฐฐ๊ณ ํŒŒ(Easy) / C++

[BOJ] 28239๋ฒˆ ๋ฐฐ๊ณ ํŒŒ(Easy) / C++
C++ ๋ฐฑ์ค€ BOJ ์•Œ๊ณ ๋ฆฌ์ฆ˜ Algorithm

๐Ÿ”— ๋ฐฐ๊ณ ํŒŒ(Easy)

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


๐Ÿ“Œ ๋ฌธ์ œ ์š”์•ฝ

์ฃผ์–ด์ง„ ์–‘์˜ ์ •์ˆ˜ m์— ๋Œ€ํ•ด 2^x + 2^y = $์ธ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜ x์™€ y๋ฅผ ์ฐพ์€ ๋’ค ๋ฉ”๋‰ดํŒ์˜ (x,y) ์œ„์น˜์— ์ ํžŒ ๋ฉ”๋‰ด๋ฅผ ๊ณ ๋ฅธ๋‹ค. ๋‹จ, x <= y์ธ ๊ฒฝ์šฐ๋งŒ ๋‹ค๋ฃฌ๋‹ค.

์ž…๋ ฅ: ์ฒซ ๋ฒˆ์งธ ์ค„์— ๋ฉ”๋‰ด์˜ ์ˆ˜ n์ด ์ฃผ์–ด์ง„๋‹ค ์ด์–ด์„œ n๊ฐœ์˜ ๊ฐ ์ค„์— ๋ฉ”๋‰ด๋ฅผ ๊ณ ๋ฅผ ๋•Œ ์‚ฌ์šฉํ•  ์–‘์˜ ์ •์ˆ˜ m์ด ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค.
์ถœ๋ ฅ: n๊ฐœ์˜ ์ค„์— ๊ฐ๊ฐ ์ฃผ๋ฌธํ•  ๋ฉ”๋‰ด์˜ ์œ„์น˜ (x,y)์˜ x, y๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.


๐Ÿ’ก ์ ‘๊ทผ ๋ฐฉ๋ฒ•

๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•˜๋Š”๊ฒƒ์ด 2์˜ ์ œ๊ณฑ์Œ์„ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด์ง„์ˆ˜ ๋น„ํŠธ ๊ฐ’์„ ํ™œ์šฉํ•ด ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋‚˜๊ฐ€๊ธฐ๋กœ ํ–ˆ๋‹ค.
m๊ฐ’์˜ ์ œํ•œ์ด int ๋ฒ”์œ„๋ฅผ ๋„˜์–ด long long์œผ๋กœ ์„ ์–ธํ•ด์ฃผ๊ณ , ๋น„ํŠธ๊ฐ’ ๋˜ํ•œ ๊ฐ™์€ ์ž๋ฃŒํ˜•์œผ๋กœ ์„ ์–ธํ•˜์—ฌ
๋น„ํŠธ ์ž๋ฆฟ์ˆ˜๋งˆ๋‹ค ํ™•์ธํ•ด ์ž‘์€ ์ž๋ฆฟ๊ฐ’๋ถ€ํ„ฐ ์ถœ๋ ฅํ•ด์ค€๋‹ค.


โš ๏ธ ์ฒ˜์Œ์— ํ–ˆ๋˜ ์‹ค์ˆ˜

์ž๋ฃŒํ˜•์„ m๊ฐ’์—๋งŒ ์ ์šฉํ•˜์—ฌ ๋น„ํŠธ ๊ฐ’ ๊ณ„์‚ฐํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์ž๋ฃŒํ˜• ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์—ˆ๋‹ค.
๋น„ํŠธ ๊ณ„์‚ฐํ•˜๋Š” c ๊ฐ’์—๋„ ์ž๋ฃŒํ˜•์„ ์ ์šฉํ•œ ๋’ค ์—๋Ÿฌ๊ฐ€ ์•ˆ๋‚ฌ๋‹ค.


๐Ÿ’ป ์ฝ”๋“œ

#include <iostream>
using namespace std;

long long n, m;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    cin >> n;

    for(int i = 0; i < n; ++i)
    {
        cin >> m;
        long long c=1;
        for(int j = 0; j < 64; ++j)
        {
            if((c << j) == m)
            {
                cout << j - 1 << ' ' << j - 1;
            }
            else if((c << j) & m)
            {
                cout << j << ' ';
            }
        }
        cout << '\n';
    }

    return 0;
}