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

Kim Nahyeong·2022년 10월 26일
0

프로그래머스

목록 보기
34/38

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

using namespace std;

string nums;
vector<int> solution(string s) {
    vector<int> answer;
    int change = 0, remove = 0;
    
    int num = 0;
    
    while(num != 1){
        num = 0;
        
        for(int i = 0; i < s.size(); i++){
            if(s[i] == '0'){
                remove++; // 제거된 0의 개수 세기
            } else if(s[i] == '1'){
                num++;
            }
        }
        
        s.clear();
        int tmp = num;
        while(tmp > 0){
            s += to_string(tmp % 2);
            tmp /= 2;
        }
        
        change++;
    }
    
    answer.push_back(change);
    answer.push_back(remove);
    
    return answer;
}

은근 문자열 문제, string에 int를 저장하려면 to_string을 사용해야한다는 것을 잊지 말자.

0개의 댓글