# Bitwise AND of Numbers Range
총 1개의 포스트

LeetCode - 201. Bitwise AND of Numbers Range
코드 풀이 및 소감 접근 방법 1.(X) left부터 right까지 돌면서 AND 연산을 하면 시간 초과가 날 거 같았는데 혹시 몰라 테스트 하니 역시 시간초과가 났다. 최대 값이 2^31 - 1인 2147483647 접근 방법 2.(통과는 했지만 틀린 풀이 같다.) 먼저 숫자들을 2진수로 변경 시켜 보았다. >1 -> 0001 >2 -> 0010 >3 -> 0011 >4 -> 0100 >5 -> 0101 >6 -> 0110 >7 -> 0111 >8 -> 1000 혹시 공통점이 보일지 모르겠다. 바로 2^n 꼴일 때마다 맨 앞의 1이 생기며 나머지가 0으로 되므로 AND 연산을 수행하면 0이 나오는게 자명하다. ex) 7,8을 보면 알 수 있다. 그래서 log2를 취해서 2^n ~ 2^(n+1)-1인 경우만 AND 연산을 해줘서 통과했다. 근데 다시 생각해보니 최대 범위인 2^30 ~ 2^31-1 이면 1073741824 ~ 21474
2021년 10월 10일
·
0개의 댓글·
0