반응형
https://programmers.co.kr/learn/courses/30/lessons/70129?language=cpp
코딩테스트 연습 - 이진 변환 반복하기
programmers.co.kr
구현 문제였습니다.
📕 풀이방법
📔 풀이과정
문제 대로 구현합니다.
deleteZero()로 0들을 제거해줍니다.
convertToBin()으로 제거된 문자열의 길이를 이진으로 변환한 문자열 얻습니다.
📔 정답출력
{converted, deleted}를 반환해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int converted, deleted;
string deleteZero(string s){
string deletedStr;
for(auto c : s) {
if(c != '0') deletedStr += c;
else deleted++;
}
return deletedStr;
}
string convertToBin(string s){
string convertedStr;
int num = s.size();
converted++;
while(num){
convertedStr += to_string(num % 2);
num /= 2;
}
reverse(convertedStr.begin(), convertedStr.end());
return convertedStr;
}
vector<int> solution(string s) {
converted = 0;
deleted = 0;
string str = s;
while(1){
if(str == "1") break;
str = deleteZero(str);
str = convertToBin(str);
}
return {converted, deleted};
}
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 프로그래머스(연습문제) : JadenCase 문자열 만들기 (0) | 2022.06.30 |
---|---|
(C++) - 백준(BOJ) 25304 : 영수증 (0) | 2022.06.26 |
(C++) - 백준(BOJ) 20833 : Kuber (0) | 2022.06.24 |
(C++) - 백준(BOJ) 11970 : Fance Painting (0) | 2022.06.23 |
(C++) - 백준(BOJ) 9288 : More Dice (0) | 2022.06.22 |