[LeetCode] 342. Power of Four

0

LeetCode

목록 보기
22/58
post-thumbnail

[LeetCode] 342. Power of Four

풀이1

  • Brute-force 풀이
class Solution {
public:
    bool isPowerOfFour(int n) {
        if(n <= 0) return false;
        
        while(n>1){
            if(n % 4 == 0) n/=4;
            else return false;
        }
        return true;
    }
};

풀이2

  • without loops/recursion -> log 함수 사용
#include <cmath>

class Solution {
public:
    bool isPowerOfFour(int n) {
        if(n <= 0) return false;

        double log2n = log2(n);
        //(1) n이 2의 제곱수인지 확인
        if((int)log2n != ceil(log2n)) return false; 
        //(2) n이 4의 제곱수인지 확인
        //4^x = 2^(2x)
        if((int)log2n % 2 != 0) return false; 
        return true;
    }
};

참고자료

profile
Be able to be vulnerable, in search of truth

0개의 댓글