leetcode#231 Power of Two

정은경·2022년 6월 21일
0

알고리즘

목록 보기
100/125

1. 문제

2. 나의 풀이

2-1. 재귀를 이용해서 풀기

class Solution:
    def foo(self, n):
        if n <= 0:
            return False
        if n == 1:
            return True
        if n % 2 > 0 :
            return False
        return self.foo(n//2)
        
    def isPowerOfTwo(self, n: int) -> bool:
        return self.foo(n)        

2-2. 재귀/루프를 이용하지 않고 풀기

  • 제약조건이 2의 0승부터 최대 31승까지여서, 2의 0승부터 2의 32승까지의 수를 리스트에 넣어서 해당하는 지를 비교하였다
class Solution:
        
    def isPowerOfTwo(self, n: int) -> bool:
        powers_of_two = [2**x for x in range(0, 32)]
        if (n in powers_of_two):
            return True
        return False

Reference

profile
#의식의흐름 #순간순간 #생각의스냅샷

0개의 댓글