Leetcode Java Power of Four
업데이트:
문제
코드
class Solution {
public boolean isPowerOfFour(int n) {
if ((n & (n - 1)) == 0) {
while (n > 1) {
n >>= 2;
}
}
return n == 1;
}
}
결과
설명
-
주어진 정수가 n이 $4^x$인 4의 제곱수인지를 검증하는 문제이다.
- n과 $n - 1$의 AND(&) 비트 연산의 결과가 0인 경우, n이 1보다 클때까지 반복하여 n의 비트 숫자열을 우측으로 2칸 이동시킨다.
- Power of Two와 유사하게 n과 $n - 1$의 AND(&) 비트 연산의 2의 배수의 결과는 0이 된다.
- n의 비트 숫자열을 우측으로 2칸 이동시키면 4를 나눈 상태와 동일하다.
- n이 1이면 4의 제곱수이므로 true를, 아니면 4의 제곱수가 아니므로 false를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기