코딜리티 Lesson 1, Binary Gap - Java
로직과의 사투/Algorithm

코딜리티 Lesson 1, Binary Gap - Java

코딜리티 테스트를 볼 일이 생겨 Java로 첫 문제 연습을 해보았다. Binary Gap은 코딜리티의 Lesson 1번의 문제이다. 문제의 요는 10진수를 2진수로 변경해 가장 큰 1과 1사이의 갭을 구하는 문제이다. Java Integer 클래스 안에 toBinaryString 메소드를 이용해 한 번의 순회로 해결할 수 있게 코드를 짜보았다.

// you can also use imports, for example:
// import java.util.*;

// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");

class Solution {
    public int solution(int N) {
        // write your code in Java SE 8
        String binaryString = Integer.toBinaryString(N);

        char[] binaryArray = binaryString.toCharArray();
        int result = 0;
        int count = 0;
        for (char c : binaryArray) {
            if (c == '0') {
                count++;
            } else {
                result = Math.max(count, result);
                count = 0;
            }
        }

        return result;
    }
}

직접 코딜리티 사이트를 사용해보면 알겠지만 테스트 케이스를 매우 상세하고 정확하게 가르쳐준다. 백준 등에서 어떤 테스트케이스에서 실패 하는지 알기 어려웠던 경험을 생각해보면 매우 친절하단 생각이 든다. 놓치는 예외 케이스나 엣지 케이스들에 대한 연습이 필요할 땐 코딜리티를 잘 활용하면 매우 좋을 것이란 생각이든다. 

100% 개꿀!