길이가 64인 막대를
절반씩 줄이고 더하면서
특정 길이를 맞춘다
라는 뜻은
특정 길이 X를 2진수로 표현하시오
라고 들립니다
예를들어
23을 2진수로 표현하면
16 + 4 + 2 + 1 = 23
10111 입니다
1의 개수가 4개 = 사용한 막대기의 수 4개
가 됩니다
1. 입력받은 숫자를 2진수로 바꾸면서
2. 더해줍니다
3. 출력합니다
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scan= new Scanner(System.in);
int n = scan.nextInt();
int sum = 0;
for(int i=6; i>=0; i--) {
int nn = 1;
for(int j=0; j<i; j++) {
nn *= 2;
}
sum += n/nn;
n = n%nn;
}
System.out.println(sum);
}
}
sum += n/nn; 으로 더해준 이후
n = n%nn; 을 통해
막대기를 재조정하는 과정을 넣었습니다
'백준 문제풀기 > JAVA' 카테고리의 다른 글
[백준 1152 JAVA 자바] 단어의 개수 (0) | 2023.07.29 |
---|---|
[백준 1110 JAVA 자바] 더하기 사이클 (0) | 2023.07.29 |
[백준 1085 JAVA 자바] 직사각형에서 탈출 (0) | 2023.07.29 |
[백준 1037 JAVA 자바] 약수 (0) | 2023.07.29 |
[백준 1018 JAVA 자바] 체스판 다시 칠하기 (0) | 2023.07.29 |