알고리즘 문제
[C/C++ 백준 1094번] 막대기 (Silver 5)
새파란 공대생
2020. 7. 7. 21:13
https://www.acmicpc.net/problem/1094
1094번: 막대기
지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대��
www.acmicpc.net
숫자를 이진법으로 만들어 준 뒤, 1의 개수를 세어주면 되는 문제이다.
코드는 다음과 같다.
#include <cstdio>
#include <algorithm>
using namespace std;
int main(void){
int N, ans=0;
scanf("%d", &N);
while(N){
if(N%2==1)
ans++;
N /= 2;
}
printf("%d", ans);
}
특별할게 없는 문제지만, 태그에 비트마스킹이라는 태그가 있는 것이 마음에 걸린다.
찾아보니 비트마스크 기법은 bit을 활용해서 문제를 푸는 테크닉이라고 한다. 이 문제의 경우 이진법으로 바꾼 후 1의 개수를 세는 것이므로, 비트마스크 기법이라고 할 수 있을것 같다.