728x90
<문제 링크>
https://leetcode.com/problems/power-of-two/
<문제 풀이>
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
<고쳐야 할 점>
- 문제유형 잘 알아두기
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[DFS] 릿코드 200 Medium 'Number of Islands' (Python) (0) | 2022.02.09 |
---|---|
[해시] 릿코드 438 Medium 'Find All Anagrams in a String' (Python) (0) | 2022.02.07 |
[이분탐색] 릿코드 153 Medium 'Find Minimum in Rotated Sorted Array' (Python) (0) | 2022.02.04 |
[이분탐색] 릿코드 Medium 74 'Search a 2D Matrix' (Python) (0) | 2022.02.03 |
[이분탐색] 릿코드 Medium 33 'Search in Rotated Sorted Array' (Python) (0) | 2022.02.03 |