코드
#include <string>
#include <vector>
using namespace std;
vector<int> solution(string s) {
vector<int> answer(2,0); // 0~1 범위의 값을 0으로 채움
while(s!="1"){ // s가 "1"일 시 반복문 탈출
string check1=""; // 0 제거 후 1만 저장
answer[0]++; // 이진 변환 횟수 카운트
for(int i=0;i<s.size();i++){
if(s[i]=='0'){
answer[1]++; // 0의 개수 카운트
}else{
check1=check1+"1";
}
}
int size1=check1.size();
s=""; // s 값 초기화
while(size1){ // 10진법 -> 2진법으로 변환
s=s+to_string(size1%2);
size1=size1/2;
}
}
return answer;
}
'C++ > programmers 코딩테스트(level 2) C++' 카테고리의 다른 글
[C/C++] programmers Level 2 연속 부분 수열 합의 개수 (0) | 2023.10.12 |
---|---|
[C/C++] programmers Level 2 영어 끝말잇기 (0) | 2023.10.11 |
[C/C++] programmers Level 2 귤 고르기 (0) | 2023.10.10 |
[C/C++] programmers Level 2 멀리 뛰기 (0) | 2023.10.09 |
[C/C++] programmers Level 2 구명보트 (0) | 2023.10.08 |