Binary Gap 문제
·
Java/코딩테스트
문제숫자를 이진수로 변환하여 1과 1사이의 길이 수를 출력아이디어1. 숫자를 바이너리 문자로 변환 후 순회하면서 0 카운트 갱신구현이 가장 직관적디버깅, 테스트 쉬움문자열 변환·할당 비용이 있음O(logN)2. 비트 연산 단일 루프 방식순회 N > 0N & 1 으로 LSB 조사N >>= 1 로 한 비트씩 오른쪽으로 이동문자열 변환 없이 비트만 직접 다름, O(1), 속도 측면에서 매우 효율적비트 마스크·시프트에 익숙해야함3. 정규 표현식 활용2진 문자열에서 1 ( 0+ ) 1 패턴을 모두 찾아서 그룹 길이의 최댓값코드가 한두 줄로 간결정규식 매칭 비용이 있고, 가독성이 다소 떨어질 수 있음4. 수학적 모듈로 연산N % 2 로 LSB를 구하고N /= 2 로 우측 쉬프트와 동일한 효과를 내면서0,1 카운팅 ..