본문 바로가기

두두의 알고리즘/문제

[비트연산] 릿코드 231 Easy 'Power of Two' (Python)

728x90

<문제 링크>

https://leetcode.com/problems/power-of-two/

 

Power of Two - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com


<문제 풀이>

1. n이 2의 지수여야 하므로 n을 2진수로 바꾸면 모두 1이다

2. n에서 1을 빼면 10, 100000 처럼 나오므로 n-1과 n을 & 비트연산하면 무조건 0이 나올 것이다

3. n이 0보다 크고, n&(n-1)이 0이면 True가 나오게 한다.

 

<코드>

class Solution:
    def isPowerOfTwo(self, n: int) -> bool:
        return n>0 and n & (n-1)==0

 

<고쳐야 할 점>

  • 문제유형 잘 알아두기