[프로그래머스] 이진 변환 반복하기

hamsteak·2023년 9월 15일
0

ps

목록 보기
6/39

간단한 구현문제. 제시된 대로 작성하면 된다.

https://school.programmers.co.kr/learn/courses/30/lessons/70129

cpp code

#include <iostream>
#include <string>
#include <vector>
#include <bitset>

using namespace std;

vector<int> solution(string s) {
	vector<int> answer;

	int transformationCount = 0;
	int removedZeroCount = 0;

	while (s.length() > 1) {

		auto it = s.begin();
		while (it != s.end()) {
			if (*it == '0') {
				it = s.erase(it);
				removedZeroCount++;
			}
			else {
				it++;
			}
		}

		bitset<18> bs(s.length());
		string bitLength = bs.to_string();

		s = bitLength.substr(bitLength.find('1'));

		transformationCount++;
	}

	answer.push_back(transformationCount);
	answer.push_back(removedZeroCount);

	return answer;
}
profile
안녕하세요

0개의 댓글