반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[LeetCode] 231 | Power of Two | Python 본문
728x90
반응형
문제 링크: https://leetcode.com/problems/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 == $2^x$.
조건
- -231 <= n <= 231 - 1
내 풀이
Iteration없이 풀어보려고 했다.
2의 제곱수는 비트 연산자를 사용하면 편하게 할 수 있다.
n이 2의 제곱수라면, 이를 이진수로 표현하면 1이 한개만 존재하게 되고, n-1은 그 밖의 모든 자리가 1로 표현된다.
그렇기 때문에 AND(&) 연산자를 사용하게되면 0이 나온다.
이때, 음수는 2의 제곱수가 아니므로 제외한다.
코드
class Solution:
def isPowerOfTwo(self, n: int) -> bool:
return n > 0 and n & (n-1) == 0
728x90
반응형
'스터디 > 코테' 카테고리의 다른 글
[백준] 2583번 | 영역 구하기 | C++ (0) | 2021.12.22 |
---|---|
[LeetCode] 143 | Reorder List | Python (0) | 2021.12.22 |
[LeetCode] 1200 | Minimum Absolute Difference | Python (0) | 2021.12.20 |
[백준] 2579번 | 계단 오르기 | C++ (0) | 2021.12.20 |
[백준] 2251번 | 물통 | Python (0) | 2021.12.17 |
Comments