https://www.acmicpc.net/problem/1094
백준 1094번 막대기 문제 링크입니다.
핵심
문제를 해석해보면 매우 쉬운 문제라는 것을 알 수 있다. 64보다 작거나 같은 자연수를 2진수로 바꾸었을 때, 1의 개수를 구하는 것이다.
정답 코드
import java.util.Scanner;
public class Main
{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
String binary = Integer.toBinaryString(N);
int count=0;
for (int i = 0; i<binary.length(); i++){
if (binary.charAt(i)=='1')count++;
}
System.out.println(count);
}
}
해설
2진수로 변환하는 방법만 알면 쉽게 풀 수 있다.
Integer.toBinaryString을 사용하여, String형태의 2진수로 바꿀수 있다.
이후 String을 길이만큼 검색하는데, 이때 1이 나오면 count ++ 을해준다.
개선점이나 오류가 있다면, 댓글 부탁드립니다.
'PS > 알고리즘 문제풀이' 카테고리의 다른 글
[백준]11053번 가장 긴 증가하는 부분 수열(java) (0) | 2022.08.14 |
---|---|
[백준]2156번 포도주 시식(java) (0) | 2022.08.10 |
[백준]1463번 1로 만들기(java) (0) | 2022.08.02 |
[백준]2579번 계단 오르기(java) (0) | 2022.08.01 |
[백준]1912번 연속합(java) (0) | 2022.07.31 |