더북(TheBook)

1-A-i. 0의 개수와 제거 횟수 누적

이 메서드를 사용하여 변환할 때 변환 횟수와 제거된 0의 개수를 누적해줄 수 있습니다.

while (!s.equals("1")) {
    int zeros = countZeros(s);
    loop += 1;
    removed += zeros;
    
    // 문자열 s 변환
}

 

1-B. 나머지 1의 개수를 사용해서 2진법으로 변환하여 1부터 반복

0의 개수를 알고 있으므로 1의 개수도 구할 수 있습니다. 또 구한 1의 개수를 2진법으로 변환하여 s를 변환할 수 있습니다.

while (!s.equals("1")) {
    int zeros = countZeros(s);
    loop += 1;
    removed += zeros;

    int ones = s.length() - zeros;
    s = Integer.toString(ones, 2);
}

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.