๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 1052๋ฒˆ - ๋ฌผ๋ณ‘

by ์•ˆ์ฃผํ˜• 2022. 3. 30.

๋ฌธ์ œ

 

1052๋ฒˆ: ๋ฌผ๋ณ‘

์ง€๋ฏผ์ด๋Š” N๊ฐœ์˜ ๋ฌผ๋ณ‘์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ฐ ๋ฌผ๋ณ‘์—๋Š” ๋ฌผ์„ ๋ฌดํ•œ๋Œ€๋กœ ๋ถ€์„ ์ˆ˜ ์žˆ๋‹ค. ์ฒ˜์Œ์— ๋ชจ๋“  ๋ฌผ๋ณ‘์—๋Š” ๋ฌผ์ด 1๋ฆฌํ„ฐ์”ฉ ๋“ค์–ด์žˆ๋‹ค. ์ง€๋ฏผ์ด๋Š” ์ด ๋ฌผ๋ณ‘์„ ๋˜ ๋‹ค๋ฅธ ์žฅ์†Œ๋กœ ์˜ฎ๊ธฐ๋ ค๊ณ  ํ•œ๋‹ค. ์ง€๋ฏผ์ด๋Š” ํ•œ ๋ฒˆ

www.acmicpc.net

 

์ฝ”๋“œ

#include <iostream>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int N,K; cin>>N>>K;
    
    int ans = 0;
    
    for(ans;; ans++){
        int cnt = 0;
        int temp_N = N;
        while(temp_N!=0){
            if(temp_N%2) cnt++;
            temp_N/=2;
        }
        if(cnt<=K) break;
        N++;
    }
    
    cout<<ans;
}

 

ํ’€์ด

์•„๋ž˜์˜ ์ž…์ถœ๋ ฅ์œผ๋กœ ํ•œ๋ฒˆ ์„ค๋ช…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

13๊ฐœ์˜ ๋ฌผ๋ณ‘์„ ํ•ฉ์น˜๊ฒŒ ๋˜๋ฉด ๊ฒฐ๊ตญ ์ตœ์ข…์ ์œผ๋กœ 3๊ฐœ์˜ ๋ฌผ๋ณ‘์ด ๋‚จ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋‚˜๋ˆ„๋Š” ๊ณผ์ •์€ ์•„๋ž˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™๊ณ , ์ฝ”๋“œ์ƒ์œผ๋กœ๋Š” while(temp_N!=0) ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ๋‚จ์€ ๋ฌผ๋ณ‘ 3๊ฐœ๋Š” ํ•œ ๋ฒˆ์— ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฌผ๋ณ‘ ๊ฐœ์ˆ˜ K๋ณด๋‹ค ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌผ๋ณ‘์„ ๋˜ ์ถ”๊ฐ€ํ•˜์—ฌ ๋‚จ์€ ๋ฌผ๋ณ‘ ์ˆ˜๋ฅผ ์ค„์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ณ‘์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ณผ์ •์€ N++์ž…๋‹ˆ๋‹ค. ์ด์ œ ๋‹ค์‹œ ์œ„ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜์—ฌ "๋‚จ์€ ๋ฌผ๋ณ‘ ๊ฐœ์ˆ˜ <=K" ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์‚ฐํ•˜์—ฌ ์ตœ์ข…์ ์œผ๋กœ N์„ ์ถ”๊ฐ€ํ•ด์ค€ ํšŸ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ์ •๋‹ต์ด ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ์—์„œ ๋งŒ์•ฝ ์ •๋‹ต์ด ์—†์„ ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•˜๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ ์ •๋‹ต์ด ์—†๋Š” ๊ฒฝ์šฐ๋Š” ์—†์œผ๋‹ˆ ๋”ฐ๋กœ ์ฒ˜๋ฆฌํ•ด ์ฃผ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€