본문 바로가기

old/Algorithm Solving

Count Binary Substrings문제 풀이

반응형

문제

Problem_Link

내 답

  • 1시간 제한
  • 인터넷 사용 안함

내 코드

Compile Error

최선의 답

인터넷과 책에서 찾아본 답


class Solution {    
        public int countBinarySubstrings(String s) {
        int curRun = 1;
        int preRun = 0;
        int count = 0;
        
        for (int i = 1; i < s.length(); i++) {
            if (s.charAt(i) == s.charAt(i - 1)) ++curRun;
            else {
                count += Math.min(curRun, preRun);
                preRun = curRun;
                curRun = 1;
            }
        }
        return count + Math.min(curRun, preRun);
    }
}
  • Time complexity : O(n)
  • Space complexity : O(1)

반성 할 점

  • 각 숫자를 카운트 한후, 두 숫자에서 작은 수가 가능한 값이라는것을 이용해서 모두 더함으로 답을 구함
  • 0001111 을 예로 들면, 0은 3개고 1은 4개 이므로, 답은 3이라고 할수 있음. 0001111->(3,4)-작은수->3
  • 이 반복되는 규칙을 아예 찾지 못했으므로, 코드를 완성했더라도 제대로 돌아가지 않으리라고 생각함. 이를 찾는 연습이 필요함.
반응형