티스토리 뷰
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
링크
TAG
- graph
- C
- Implementation
- binary search
- dfs
- Python
- C++
- greedy
- Dijkstra
- back tracking
- Unity
- Brute Force
- permutation
- priority queue
- 이분탐색
- 자료구조
- Stack
- Kruskal
- BFS
- db
- 조합
- MVC
- 재귀
- DP
- recursion
- two pointer
- CSS
- Spring
- Tree
- floyd warshall
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함