L1_BinaryGap
목차
- Step 1. 문제 설명
- Step 2. 풀이
- Step 3. 결과
Step 1. 문제 설명
주어진 N의 정수를 이진법으로 변환하여 양 끝에 1로 둘러 쌓인 0의 sequence 중에서 최대 길이를 반환하는 문제이다.
e.g. 10001 이면 3을 반환
단, 100000 처럼 1로 둘러 쌓이지 않으면 0을 반환해야한다.
문제 : https://app.codility.com/programmers/lessons/1-iterations/binary_gap/
Step 2. 풀이
1 |
|
-
N을 이진수로 바꾼 값에서 0b를 없애기 위해 2번째 인덱스부터 뽑고 1로 split() 실행
-
결과가 문자형으로 바뀌기에 ‘‘로 바뀐 1을 카운트해 모두 1인 경우 return 0
-
10, 11, 00 인 경우 return 0
-
첫번째 인덱스는 1인데, 마지막 인덱스가 1이 아닌 경우, 그 사이에 존재하는 0 sequence 길이에서 가장 큰값 return
-
나머지 경우에서 return
Step 3. 결과
물론 시간은 2분이 걸린건 절대 아니다 ㅋㅋㅋ 여러번 시도 끝에 얻은 결과이다