제곱수인지 확인
def isSquare(n):
return int(n ** 0.5) ** 2 == n
2의 n 제곱인지 확인
def isPowerOf2(n):
return (n&(n-1))==0
2의 제곱은 비트로 나타낼 때 맨 왼쪽 비트만 1이고, n이 2의 제곱이라면 n-1 은 맨 왼쪽 비트가 0이고 그 오른쪽 비트들은 모두 1이게 됨.
따라서 n이 2의 거듭제곱이라면 n과 n-1을 and 연산 했을 때 0이 나오게 됨.
'Computer Science > Algorithm' 카테고리의 다른 글
#05 병합 정렬(Merge Sort) (0) | 2022.01.06 |
---|---|
#04 퀵 정렬(Quick Sort) (0) | 2022.01.06 |
#03 삽입 정렬(Insertion Sort) (0) | 2022.01.05 |
#02 - 선택 정렬(Selection Sort) (0) | 2022.01.05 |
#01 거품정렬 (bubble sort) (0) | 2022.01.05 |
댓글