티스토리 뷰

PS

백준 17419. 비트가 넘쳐흘러

tose33 2022. 10. 18. 14:30

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

 

17419번: 비트가 넘쳐흘러

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

www.acmicpc.net

 

이 문제는 직접 연산하는것 외에 방법을 모르겠어서 찾아 봤다.

주어지는 식은 다음과 같은데 

  • K = K-(K&((~K)+1))

K = 10110  이라고 해보자 

 

여기서 우선 가장 안쪽 괄호 ((~K) + 1) 은 2의 보수를 취하는것 이다. 

((~K) + 1)  = 01010

 

이제 기존 k와 and 연산을 해주면 00010 이된다.

 

즉 위 식은 K에서 최하위 1인 bit를 빼주는 연산이라는 얘기다.

따라서 연산 횟수는 K의 1의 갯수가 된다. 

 

 

 

'PS' 카테고리의 다른 글

백준 16197. 두 동전  (0) 2022.10.31
백준 16562. 친구비  (0) 2022.10.27
백준 14389. 2의 보수  (0) 2022.10.18
백준 12833. XORXORXOR  (0) 2022.10.18
백준 2589. 스도쿠  (0) 2022.10.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함