N

(Leet Code c++)Power of Two 본문

Leet Code 알고리즘

(Leet Code c++)Power of Two

naeunchan 2021. 7. 27. 10:14
728x90
반응형

231. Power of Two

 

Given an integer n, return true if it is a power of two. Otherwise, return false.

An integer n is a power of two, if there exists an integer x such that n == 2x.

 

Example 1:

Input: n = 1 Output: true Explanation: 20 = 1

Example 2:

Input: n = 16 Output: true Explanation: 24 = 16

Example 3:

Input: n = 3 Output: false

Example 4:

Input: n = 4 Output: true

Example 5:

Input: n = 5 Output: false

 

Constraints:

  • -231 <= n <= 231 - 1

map을 이용해 n이 2의 제곱인지 판단.

우선 for문을 통해 0부터 pow(2, i) <= INT_MAX일 때까지 반복하도록 하자.

2의 제곱에 해당하는 수가 key가 되어 true로 만들어 준다.

 

for문이 끝나면 바로 n을 키로 가지고, 해당 value가 true인지 확인하면 끝이다.

class Solution {
public:
    bool isPowerOfTwo(int n) {
        map<int, bool> m;
        
        for(int i = 0; pow(2, i) <= INT_MAX; i++){
            m[pow(2, i)] = true;
        }
        
        if(m[n]){
            return true;
        }
        
        return false;
    }
};

 

728x90
반응형