PS/BOJ
[백준] 1094.cpp : 막대기
bconfiden2
2020. 6. 12. 09:07
1094번: 막대기
지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대��
www.acmicpc.net
#include <iostream>
int n, a;
int main(void)
{
std::cin >> n;
// 최대값 64니까 2의 6승까지만 비트마스킹
for(int i = 0 ; i < 7 ; i++)
{
// 해당 자릿수에 비트가 있으면 증가
if(n & (1 << i)) a++;
}
std::cout << a << '\n';
}
[Try]
1. 문제에서 뭘 장황하게 설명하고 있지만, 결국에는 1, 2, 4, 8, 16, 32 등 2의배수로 수를 만들라는 뜻. 비트만 세주면 된다
[Point]
1. builtin popcount (gcc 내장함수, 정수에서 1 비트 수를 세준다)
2. 비트연산자에 친숙해지기