반응형
어떤 정수가 주어졌을때 이 정수의 비트 하나를 0에서 1로 바꿀 수 있다. 이때 1이 연속으로 나올 수 있는 가장 긴 길이를 구하라.
1) 정수 20이 주어짐
10100
2) 길이 3 출력
3) 풀이 순서
1. STEP
- ArrayList에 0과1의 길이를 오른쪽 부터 0의 길이 부터 번갈아 리스트에 저장
[ 2,1,1,1,27 ]
10100
기본적인 & 연산자와 쉬프트 연산자 이용 카운터값을 리스트에 저장
2. STEP
리스트에서 가장 긴 길이를 갱신해가며 반환
[ 2,1,1,1,27 ]
0을 기준으로 1로 바꿔야 하기 때문에
리스트의 인덱스 0,2,4번째의 짝수 순으로 판단 반복
반응형
'Problem Solving > 코딩 인터뷰 완전분석' 카테고리의 다른 글
2진수를 문자열로 (0) | 2018.12.29 |
---|---|
4.6 후속자 (0) | 2018.12.15 |
4.5 BTS 검증 (0) | 2018.12.15 |
4.4 균형 확인 (0) | 2018.12.15 |
루프 발견 구현 (0) | 2018.12.01 |