#include <string>
#include <vector>
#include <iostream>
using namespace std;
//변환 횟수, 제거한 0개의 개수
//길이로 이진변환
vector<int> solution(string s)
{
vector<int> answer(2, 0);
while(s.length() > 1)
{
int count = 0;
answer[0]++;
for(int i = 0; i < s.length(); i++)
{
if(s[i] == '0')
{
answer[1]++;
}
else
{
count++;
}
}
s = "";
//이진변환
while(count > 0)
{
s += count % 2 == 1 ? "1" : "0";
count /= 2;
}
}
return answer;
}
풀이
1. 0을 지워가며 지워진 0의 개수 저장 및 1의 개수 저장
2. 길이가 1보다 클 경우 계속 반복
느낀점
bitset을 사용한 풀이가 더 좋아보인다. 그리고 while으로 반복해서 풀었어도 됐을 것같다.
https://school.programmers.co.kr/learn/courses/30/lessons/70129
'Algorithm > Programmers' 카테고리의 다른 글
[Java] 프로그래머스 멀리뛰기 (0) | 2024.07.13 |
---|---|
[C++] 프로그래머스 요격시스템 (0) | 2024.04.03 |
[C++] 프로그래머스 징검다리건너기 (0) | 2024.03.19 |
[C++] 프로그래머스 숫자게임 (0) | 2024.03.05 |
[C++] 프로그래머스 최고의 집합 (0) | 2024.02.29 |