리뷰
0제거 개수
문자열에서 0을 제거할 때 카운팅하고, 1이면 새로운 string에 이어붙였다.
이진수 변환 횟수
2로 나눈 나머지를 문자로 바꿔서 새로운 string에 이어붙였다.
맞았습니다 코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(string s) {
vector<int> answer(2, 0);
while(s != "1"){
string temp = "";
for(int i = 0; i < s.size(); i++){
if (s[i] == '0') answer[1]++; // 제거한 0의 개수 세기
else temp += "1";
}
int c = temp.size(); // temp의 길이 c
string c_st = "";
while(c > 0){
c_st += to_string(c % 2);
c /= 2;
}
answer[0]++; // 이진 변환 횟수 카운팅
reverse(c_st.begin(), c_st.end()); // 이진수를 s에 대입
s = c_st;
}
return answer;
}
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 징검다리 c++ (0) | 2022.05.24 |
---|---|
[프로그래머스] 도둑질 c++ (0) | 2022.05.24 |
[프로그래머스] 숫자의 표현 c++ (0) | 2022.05.22 |
[프로그래머스] JadenCase 문자열 만들기 c++ (0) | 2022.05.22 |
[프로그래머스] 가장 큰 정사각형 찾기 c++ (0) | 2022.05.22 |