백준 막대기[자력]

작성자 : 조회수 :

단계 : 실버 5


소요시간 : 20

 

아래 아이디어 및 풀이입니다.

 

각 입력 값을 나눠주면서 나머지를 더해주면 됩니다.




코드입니다.

 

package Question;

import java.util.Scanner;

// 백준 Stick

// 막대기

public class Stick {

    public static void main(String[] args) {

        solution();

    }

    // 나누기는 음수가 될수 없음

    public static void solution(){

        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();

        int remain = 0;

        while (n > 1){

            remain += n%2;

            n /= 2;

        }

        System.out.println(remain+n);

    }

}