본문 바로가기

백준 문제풀이/Bitmask

[C++] 백준 문제풀이 (Bitmask) 17419번 비트가 넘쳐흘러

 

 

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

 

17419번: 비트가 넘쳐흘러

🎶 DJ욱제는 비트에 몸을 맡기는 중이다. 🎶 DJ욱제는 비트에 심취한 나머지, 비트를 비틀어 제껴버리는 문제를 내 버렸다! N자리 이진수 K가 주어진다. K가 0이 아닐 때까지 아래의 연산을 적용

www.acmicpc.net

 

 

 

 

#include <bits/stdc++.h>
// [C++] 백준 문제풀이 (Bitmask)



int main(int argc, char *argv[])
{
	std::ios_base::sync_with_stdio(false);
	std::cin.tie(nullptr);
	/*
	K = K-(K&((~K)+1))
	  = K-(K & -K)   ---> (K & -K)는 숫자 K의 비트값이 1인것 중 최하위 비트를 의미한다.
	*/
	int n;
	std::string s;
	std::cin >> n >> s;

	int ret = 0;

	for (char ch : s){
		if (ch == '1') ++ret;
	}

	std::cout << ret << "\n";
	return 0;
}