관리 메뉴

fatalite

C++ / 이진 변환 반복하기 본문

코딩 인터뷰/프로그래머스

C++ / 이진 변환 반복하기

fataliteforu 2023. 4. 24. 09:23

Problem

난이도 : 프로그래머스 2단계 75%

범위 : 음,, 단순 반복문, 문자열, 데이터형

 

Solution 

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

vector<int> solution(string s) {
    vector<int> answer;
    int j = 0;
    int ZeroCount = 0;
    
    while(s.size() > 1){
        j++;
        string NewString;
        for(int i = 0; i < s.size(); i++){
            if(s[i] == '0'){
                ZeroCount++;
            }else{
                NewString.push_back('1');
            }
        }
        int Size = NewString.size();
        string newnew;
        while(Size > 0){
            if(Size % 2 == 1){
                newnew.push_back('1');
            }else{
                newnew.push_back('0');
            }
            Size = Size / 2;
        }
        s = newnew;
    }
    answer.push_back(j);
    answer.push_back(ZeroCount);
    return answer;
}

'코딩 인터뷰 > 프로그래머스' 카테고리의 다른 글

C++ / 영어 끝말잇기  (0) 2023.05.07
C++ / 숫자의 표현  (0) 2023.04.24
C++ / 올바른 괄호  (0) 2023.04.22
C++ / 최소값 만들기  (0) 2023.04.22
C++ / 과제 진행하기  (0) 2023.04.19