[C++/프로그래머스] 이진 변환 반복하기

다곰·2022년 10월 18일
0

우당탕탕 코테준비

목록 보기
6/98

✅ LV. 2

✏️ 솔루션

  1. s 에서 1 의 개수를 count
  2. count한 값을 이진수로 변환

✅ 십진수를 이진수로 변환하기

void f(int n) {
    if(n > 1) f(n/2);
    
    pritf(%d, n%2);
}

그냥 암기하는 편이 맘 편하다,,

✏️ 코드

#include <string>
#include <vector>

using namespace std;

string str="";

void f(int n) {
    if(n > 1) f(n/2);
    
    str+=to_string(n%2);
}

vector<int> solution(string s) {
    
    int z=0, r=0;

    vector<int> answer;
    
    while (1) {
        if(s=="1") break;
        
        int cnt=0;
        for(int i=0;i<s.size();i++) {
            if(s[i]=='1') cnt++;
            else z++;
        }
        r++;
        
        f(cnt);
        
        s=str;
        str="";

    }
    answer.push_back(r);
    answer.push_back(z);

    return answer;
}
profile
다교미의 불꽃 에러 정복기

0개의 댓글