티스토리 뷰
728x90
문제 링크
https://www.acmicpc.net/problem/15917
어떤 수 a가 2의 거듭제곱꼴인지 판별하면 된다.
쿼리의 수 Q가 $1 \leq Q \leq 1,000,000$이므로 단순히 a의 비트를 순회하며 1이 하나인지 확인해도 $O(32Q)$이므로 충분하다.
좀 더 효율적으로 하고싶다면 $a\ \&\ (a - 1)$이 0인지 확인하자.
모든 양수 a에 대해 a가 2의 거듭제곱꼴이라면 위의 값이 0이 나온다.
글을 쓰면서 문제를 다시 확인했는데 힌트 부분에 이미 답이 나와있었다... 닉값하는 문제;;
정답 코드
질문, 피드백 환영합니다.
728x90
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[BOJ] 백준 15920 선로에 마네킹이야!! (0) | 2018.07.25 |
---|---|
[BOJ] 백준 15918 랭퍼든 수열쟁이야!! (2) | 2018.07.25 |
[BOJ] 백준 15916 가희는 그래플러야!! (0) | 2018.07.25 |
[BOJ] 백준 1010 다리 놓기 (3) | 2018.07.09 |
[2018 IUPC] 백준 15784 질투진서 (4) | 2018.07.05 |
댓글