1.문자열 split과 string to int
2. 진수 변환
0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의한다.
#include <string>
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(string s) {
vector<int> answer;
int zero=0; //제거된 0의 개수
int cnt=0; //이진 변환 횟수
int size; //이진변환해야하는 변수
while(s!="1"){ //중지 조건 s=="1"
string tmp;
cnt++;
for(int i=0; i<s.size(); i++){ //0삭제
if(s[i]=='0'){
zero++;
}
else{
tmp+=s[i];
}
}
size=tmp.size();
s="";
while(size>0){ //진수 변환
s+=to_string(size%2);
size/=2;
}
}
answer.push_back(cnt);
answer.push_back(zero);
return answer;
}
사실 처음 문제를 봤을 때, 구현을 하는 것 보다 문제의 조건을 이해하는 것이 가장 어려운 문제였다. 비슷한 문제를 봤을 때 다시 문제를 이해하는 소모된는 시간을 줄일 수 있도록 해야겠다.