문제 링크
programmers.co.kr/learn/courses/30/lessons/70129
C++ 풀이
#include <string>
#include <vector>
using namespace std;
int run_count;
int zero_count;
string delete_zero(string s) {
int zero_count_temp = 0;
for (int i = 0; i < s.length(); i++) {
if (s[i] == '0')
zero_count_temp++;
}
zero_count += zero_count_temp;
string return_string(s.length() - zero_count_temp, '1');
return return_string;
}
string length_to_binary(string s) {
int i = s.length();
string return_string = "";
while (true) {
return_string = to_string(i % 2) + return_string;
i /= 2;
if (i <= 1) {
if (i == 1)
return_string = to_string(i) + return_string;
break;
}
}
return return_string;
}
vector<int> solution(string s) {
run_count = 0;
zero_count = 0;
while (s != "1") {
s = delete_zero(s);
s = length_to_binary(s);
run_count++;
}
return { run_count, zero_count };
}
반응형
'알고리즘 · 코딩' 카테고리의 다른 글
[SWEA 2007] 패턴 마디의 길이 (0) | 2021.01.25 |
---|---|
[프로그래머스] 경주로 건설 (0) | 2021.01.25 |
[프로그래머스] 두 개 뽑아서 더하기 (0) | 2021.01.18 |
[SWEA 9480] 민정이와 광직이의 알파벳 공부 (0) | 2021.01.14 |
[프로그래머스] 삼각 달팽이 (0) | 2021.01.13 |