< 출처 >
- 강의명
C++ 코딩테스트 완전 정복 : 입문부터 실전 모의고사까지
- 목차
3-4 시뮬레이션 [40:48]
< 내용 >
비트셋을 활용하여 이진법으로 전환할 수 있다.
비트셋을 사용하기 위해서는 아래와 같이 헤더 파일을 추가한다.
#include <bitset>
- 비트셋 기능 활용 예시
#include <bitset>
#include <iostream>
using namespace std;
int main()
{
// 5개의 비트를 갖는다. 초기값은 모두 0
bitset <5> myBitset;
myBitset.set(1); // bit1을 1로 설정, 00010
myBitset.set(2); // bit2를 1로 설정, 00110
cout << "1: " << myBitset << endl; // 00110
myBitset.flip(1); // bit1을 플립
cout << "2: " << myBitset << endl; // 00100
myBitset.set(); // 모든 비트를 1로 설정
cout << "3: " << myBitset << endl; // 11111
myBitset.reset(); // 모든 비트를 0으로 초기화
cout << "4: " << myBitset << endl; // 00000
return 0;
}
/*
1: 00110
2: 00100
3: 11111
4: 00000
*/
- 이진법 전환 사용 예시, 비트셋을 활용하여 이진법으로 전환하고 그 값을 string 타입으로 형변환
int onesCount = count(s.begin(), s.end(), '1');
s = bitset<32>(onesCount).to_string();
s = s.substr(s.find('1'));
'C++ > 알고리즘(Algorithm)' 카테고리의 다른 글
C++/동적 할당&메모리 누수 (0) | 2025.06.14 |
---|---|
C++/없는 숫자 더하기 (0) | 2025.06.13 |
C++/시간복잡도 (0) | 2025.06.11 |
C++/1부터 N까지 합계 (0) | 2025.06.11 |
C++/자료형 유효 범위 확인, 콜라츠 추측 (0) | 2025.06.10 |