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으로 하면 코드가 좀 더 깔끔해지지 않을까 해서 했는데...
수행속도 보니까 굳이인듯 싶다.