[C++팁] 비트 개수 세는 함수 __popcnt / __builtin_popcount

    비트마스크 문제에서 자주 사용되는 함수인 __popcnt 와 __builtin_popcount가 있는데 사용하다 보면 visual studio에서 는 잘 되다가도 백준에서는 제출 시 오류가 발생하고 반대로 하면 백준에서 컴파일이 안되는 상황이 발생합니다. 그 이유는 백준의 채점환경은 gcc환경이기 때문이고 비쥬얼 스튜디오는 msvc 이기 때문입니다. 이를 사용할 때마다 바꿔주는 건 귀찮기 때문에 다음과 같이 코드를 작성합니다. #if defined(_MSC_VER) h = __popcnt(arr[j] ^ b); // __builtin_popcount(gcc에서 사용하는 것, msvc에서는 __popcnt를 사용해야함) #else h = __builtin_popcount(arr[j] ^ b); #endif..