#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
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'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 |