알고리즘/백준

BOJ1094/ C++

내이름은 킹햄찌 2022. 1. 26. 17:27

https://www.acmicpc.net/problem/1094

 

1094번: 막대기

지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대

www.acmicpc.net

백준 온라인저지 1094번 문제입니다. 

비트마스킹을 이용해서 풀었습니다.

#include <iostream>

using namespace std;

int main() {
	int X;
	cin >> X;
	int ans = 0;
	while (X > 0)
	{
		if (X & 1)
			ans++;

		X >>= 1;
	}
	cout << ans;
}

아이디어

필요한 짝대기를 비트로 표현하여 1의 개수만 카운팅 해주면 됨

64 = 0100 0000

23 = 0001 0111

48 = 0011 0000