Notice
250x250
Recent Posts
Recent Comments
Link
넘치게 채우기
[LeetCode] 231. Power of Two 본문
728x90
반응형
https://leetcode.com/problems/power-of-two/description/
Leetcode - Power of Two
문제 유형 : 비트마스킹, 재귀
문제 난이도 : Easy
문제
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.
정수 n이 주어집니다. 2의 배수이면 true를, 아니면 false를 반환하시오.
풀이
n & n-1연산을 하면, n의 가장 오른쪽 1이 0이 된다.
2의 배수의 특징은, 이진수로 표현했을 때 1이 한 개라는 것이다
2 = 0b10
4 = 0b100
8 = 0b1000
16 = 0b10000
32 = 0b100000
..
n&n-1연산을 하였을 때 0이 된다면, 2의 배수가 맞다.
단순히 반복문이나 재귀를 통해서도 풀 수 있을 것이다.
코드
C++
class Solution {
public:
bool isPowerOfTwo(int n) {
return n > 0 && !(n&n-1);
}
};
Go
func isPowerOfTwo(n int) bool {
return n > 0 && (n&(n-1)) == 0
}
728x90
반응형
'PS > LeetCode' 카테고리의 다른 글
[LeetCode] 201. Bitwise AND of Numbers Range (0) | 2024.02.21 |
---|---|
[LeetCode] 268. Missing Number (0) | 2024.02.20 |
[LeetCode] 2402. Meeting Rooms III (0) | 2024.02.18 |
[LeetCode] 1642. Furthest Building You Can Reach (0) | 2024.02.17 |
[LeetCode] 1481. Least Number of Unique Integers after K Removals (0) | 2024.02.16 |