Simple&Natural

Codilidy lesson1 - binary gap 본문

코딩테스트 풀이/Codility

Codilidy lesson1 - binary gap

Essense 2022. 4. 17. 19:13
728x90

10진수 -> 2진수 변환을 직접 구현하지 않아도 자체적으로 지원하는 내장함수를 이용하면 된다.

각 문자를 완전탐색하면서 0인 경우 카운트를 올려주고,

1인 경우 여태까지 계산된 0의 갯수를 비교해주면 되는 간단한 로직이다.

 

fun solution(N: Int): Int {
    var answer = 0
    val binaryString = Integer.toBinaryString(N)
    var isCounting = false

    var tmpCount = 0
    binaryString.forEach { char ->
        if (char=='1') {
            if (!isCounting) {
                isCounting = true
            } else {
                if (tmpCount > answer) {
                    answer = tmpCount
                }
                tmpCount = 0
            }
        } else {
            tmpCount++
        }
    }
    return answer
}

 

https://app.codility.com/demo/results/trainingS758NM-MH3/

 

Test results - Codility

A binary gap within a positive integer N is any maximal sequence of consecutive zeros that is surrounded by ones at both ends in the binary representation of N. For example, number 9 has binary representation 1001 and contains a binary gap of length 2. The

app.codility.com

 

728x90

'코딩테스트 풀이 > Codility' 카테고리의 다른 글

Codility lesson3 - TapeEquilibrium  (0) 2022.04.28
Codility lesson3 - PermMissingElem  (0) 2022.04.27
Codility lesson3 - FrogJmp  (0) 2022.04.20
Codility lesson2 - odd  (0) 2022.04.20
Codility lesson2 - cyclic rotation  (0) 2022.04.18