티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/70129

 

코딩테스트 연습 - 이진 변환 반복하기

 

programmers.co.kr

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int zero=0;
int cnt=0;

int stepOne(string s){
    int c=0;
    for (char i : s){
        if (i=='0')
            zero++;
        else
            c++;
    }
    return c;
}

string stepTwo(int c){
    string temp="";
    while (true){
        temp+=to_string(c%2);
        c=c/2;
        if (c==0)
            break;
    }
    reverse(temp.begin(), temp.end());
    return temp;
}

vector<int> solution(string s) {
    vector<int> answer;
    while (s!="1"){
        int c=stepOne(s);
        s=stepTwo(c);
        cnt++;
    }
    answer.push_back(cnt);
    answer.push_back(zero);
    return answer;
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함