Game Develop

[Algorithm] Programmers :: 이진 변환 반복 본문

Algorithm/Programmers

[Algorithm] Programmers :: 이진 변환 반복

MaxLevel 2023. 6. 4. 01:12

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
bitset <150000> bs;
 
vector<int> solution(string s) 
{
    vector<int> answer = { 0,0 };
 
    bs = bitset<150000>(s);
    int sSize = s.size();
 
    while (sSize != 1)
    {
        answer[0+= 1;
        int oneCount = bs.count(); // 1갯수
        answer[1+= sSize - oneCount; // 사라진 0개수만큼 가산
        bs = bitset<150000>(oneCount);  // 10진수를 2진수로 bs에 저장.
 
        string s = bs.to_string();
 
        sSize = s.size() - s.find('1');
    }
     
    return answer;
}
cs

단순 구현문제긴 한데, bitset으로 하면 코드가 좀 더 깔끔해지지 않을까 해서 했는데...

수행속도 보니까 굳이인듯 싶다.