그럴듯한 개발 블로그
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

아 왜이리 헷갈리는지 모르겠다. 근데 푸니까 1점 올라가네 기준이 뭐냐 도당체

#include <string>
#include <vector>
#include <iostream>

using namespace std;

string binary_transformation(int num)
{
    string res = "";
    int multi = 1;
    while (2 * multi <= num)
        multi *= 2;
    // cout << num << ' ' << multi << '\n';
    while (num > 0 && multi >= 1)
    {
        if (num - multi >= 0)
        {
            res += '1';
            num -= multi;
        }
        else
            res += '0';
        multi /= 2;
    }
    while (multi > 0)
    {
        res += '0';
        multi /= 2;
    }
    return res;
}

vector<int> solution(string s) {
    vector<int> answer;
    int change_cnt = 0, zero_cnt = 0;
    
    while (s != "1")
    {
        int cur_one_cnt = 0;
        for (int i = 0; i < s.size(); i++)
            if (s[i] == '1')
                cur_one_cnt++; // 0의 개수
        zero_cnt += s.size() - cur_one_cnt;
        s = binary_transformation(cur_one_cnt);
        // cout << s << '\n';
        change_cnt++;
    }
    answer.push_back(change_cnt);
    answer.push_back(zero_cnt);
    return answer;
}
반응형
profile

그럴듯한 개발 블로그

@donghyk2

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!