๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค(Programmers)

[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ด์ง„ ๋ณ€ํ™˜ ๋ฐ˜๋ณตํ•˜๊ธฐ(Level 2)

by ์•ˆ์ฃผํ˜• 2022. 4. 26.

๋ฌธ์ œ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ด์ง„ ๋ณ€ํ™˜ ๋ฐ˜๋ณตํ•˜๊ธฐ

 

programmers.co.kr

 

์ฝ”๋“œ

#include <string>
#include <vector>
#include <algorithm>
// 13:35~13:47
using namespace std;

int zero_cnt;
int trans_cnt;

string delete_zero(string s){
    string bit = "";
    for(char c:s){
        if(c=='0') zero_cnt++;
        else bit+=c;
    }
    return bit;
}

string make_bit(string s){
    trans_cnt++;
    int num = s.length();
    string bit = "";
    while(num!=0){
        bit += to_string(num%2);
        num /= 2;
    }
    reverse(bit.begin(),bit.end());
    return bit;
}
vector<int> solution(string s) {
    
    while(s!="1"){
        s = delete_zero(s);
        s = make_bit(s);
    }
    return {trans_cnt,zero_cnt};
}

 

ํ’€์ด(12๋ถ„)

๋ฌธ์ž์—ด์„ ๋‹ค๋ฅผ ์ค„ ์•„๋Š๋ƒ, ๊ทธ๋ฆฌ๊ณ  ์ด์ง„ ๋ณ€ํ™˜์„ ํ•  ์ค„ ์•„๋Š๋ƒ๋ฅผ ๋ฌผ์–ด๋ณธ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์— ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ด์ง„ ๋ณ€ํ™˜ ๋ฌธ์ œ๊ฐ€ ์ฐธ ๋งŽ์€ ๊ฒƒ ๊ฐ™๋„ค์š”

๋Œ“๊ธ€