본문 바로가기

코딩 테스트/프로그래머스

[프로그래머스 Level 2, Java] 이진 변환 반복하기

728x90
반응형

문제 : 이진 변환 반복하기


풀이 방법

2진법 변환 메서드를 작성하려고 했다가, 최근에 자바 코드 작성 방법을 공부하는데 최대한 자바 API를 활용하라는 기억이 나서 2진 변환 메서드가 있는지 찾아봤다. 역시나 갓 자바는 2진 변환 메서드가 있어서 편하게 작성가능했고

 

String 안에 0이 있는지 확인해야 했는데 filter라는 메서드를 활용하니까 String 안에 0이 몇개 있는지 찾을 수 있었다.


소스 코드

class Solution {
    public int[] solution(String s) {
        int[] answer = {0, 0};

        while (!s.equals("1")) {
            answer[0]++;
            answer[1] += (int)s.chars().filter(c -> c == '0').count();
            s = Integer.toBinaryString(s.replaceAll("0", "").length());
        }

        return answer;
    }
}

 

728x90
반응형