๐Ÿงฉ Algorithm/[BOJ] Silver

BOJ 1094๋ฒˆ : ๋ง‰๋Œ€๊ธฐ (C++/Silver 5)

devCloud 2022. 9. 5. 21:39
728x90
 

1094๋ฒˆ: ๋ง‰๋Œ€๊ธฐ

์ง€๋ฏผ์ด๋Š” ๊ธธ์ด๊ฐ€ 64cm์ธ ๋ง‰๋Œ€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์–ด๋А ๋‚ , ๊ทธ๋Š” ๊ธธ์ด๊ฐ€ Xcm์ธ ๋ง‰๋Œ€๊ฐ€ ๊ฐ€์ง€๊ณ  ์‹ถ์–ด์กŒ๋‹ค. ์ง€๋ฏผ์ด๋Š” ์›๋ž˜ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋ง‰๋Œ€๋ฅผ ๋” ์ž‘์€ ๋ง‰๋Œ€๋กœ ์ž๋ฅธ๋‹ค์Œ์—, ํ’€๋กœ ๋ถ™์—ฌ์„œ ๊ธธ์ด๊ฐ€ Xcm์ธ ๋ง‰๋Œ€

www.acmicpc.net

๋ฌธ์ œ

์ง€๋ฏผ์ด๋Š” ๊ธธ์ด๊ฐ€ 64cm์ธ ๋ง‰๋Œ€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์–ด๋А ๋‚ , ๊ทธ๋Š” ๊ธธ์ด๊ฐ€ Xcm์ธ ๋ง‰๋Œ€๊ฐ€ ๊ฐ€์ง€๊ณ  ์‹ถ์–ด์กŒ๋‹ค. ์ง€๋ฏผ์ด๋Š” ์›๋ž˜ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋ง‰๋Œ€๋ฅผ ๋” ์ž‘์€ ๋ง‰๋Œ€๋กœ ์ž๋ฅธ๋‹ค์Œ์—, ํ’€๋กœ ๋ถ™์—ฌ์„œ ๊ธธ์ด๊ฐ€ Xcm์ธ ๋ง‰๋Œ€๋ฅผ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.

๋ง‰๋Œ€๋ฅผ ์ž๋ฅด๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์ ˆ๋ฐ˜์œผ๋กœ ์ž๋ฅด๋Š” ๊ฒƒ์ด๋‹ค. ์ง€๋ฏผ์ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณ์„œ ๋ง‰๋Œ€๋ฅผ ์ž๋ฅด๋ ค๊ณ  ํ•œ๋‹ค.

  1. ์ง€๋ฏผ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ง‰๋Œ€์˜ ๊ธธ์ด๋ฅผ ๋ชจ๋‘ ๋”ํ•œ๋‹ค. ์ฒ˜์Œ์—๋Š” 64cm ๋ง‰๋Œ€ ํ•˜๋‚˜๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋•Œ, ํ•ฉ์ด X๋ณด๋‹ค ํฌ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.
    1. ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ง‰๋Œ€ ์ค‘ ๊ธธ์ด๊ฐ€ ๊ฐ€์žฅ ์งง์€ ๊ฒƒ์„ ์ ˆ๋ฐ˜์œผ๋กœ ์ž๋ฅธ๋‹ค.
    2. ๋งŒ์•ฝ, ์œ„์—์„œ ์ž๋ฅธ ๋ง‰๋Œ€์˜ ์ ˆ๋ฐ˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฒ„๋ฆฌ๊ณ  ๋‚จ์•„์žˆ๋Š” ๋ง‰๋Œ€์˜ ๊ธธ์ด์˜ ํ•ฉ์ด X๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค๋ฉด, ์œ„์—์„œ ์ž๋ฅธ ๋ง‰๋Œ€์˜ ์ ˆ๋ฐ˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ฒ„๋ฆฐ๋‹ค.
  2. ์ด์ œ, ๋‚จ์•„์žˆ๋Š” ๋ชจ๋“  ๋ง‰๋Œ€๋ฅผ ํ’€๋กœ ๋ถ™์—ฌ์„œ Xcm๋ฅผ ๋งŒ๋“ ๋‹ค.

X๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์œ„์˜ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค๋ฉด, ๋ช‡ ๊ฐœ์˜ ๋ง‰๋Œ€๋ฅผ ํ’€๋กœ ๋ถ™์—ฌ์„œ Xcm๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. 

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— X๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. X๋Š” 64๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

 

์ถœ๋ ฅ

๋ฌธ์ œ์˜ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค๋ฉด, ๋ช‡ ๊ฐœ์˜ ๋ง‰๋Œ€๋ฅผ ํ’€๋กœ ๋ถ™์—ฌ์„œ Xcm๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.


์˜ˆ์ œ ์ž…๋ ฅ

23

์˜ˆ์ œ ์ถœ๋ ฅ

4

Solution

#include <iostream>
using namespace std;

int main() {
    int X, cnt = 0;
    cin >> X;
    while(X > 0){
        if(X%2 == 1)
           cnt++;
        X /= 2;
    }
    cout << cnt;
    return 0;
}
728x90