티스토리 뷰

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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
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 31
글 보관함