백준1094 - 막대기 - JAVA(이진수 1갯수 세는 함수 알아보기 - bitCount)
본문 바로가기

알고리즘/백준

백준1094 - 막대기 - JAVA(이진수 1갯수 세는 함수 알아보기 - bitCount)

728x90
반응형

안녕하세요 놀이방 사장입니다.

 

이번 포스팅은 백준 1094번

막대기문제 입니다.

 

 

1094번: 막대기

지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대

www.acmicpc.net

막대기 문제는 진짜

코드짜는거는 bitCount함수를 알고 있으면 바로 풀 수 있고

 

문제를 이해하는데 시간을 많이 사용했습니다.

 

이 문제는 X의 크기로 만들면 되는 문제이고 X크기를 만들려고 하면

64기준으로 이진수에 1의 갯수를 구하면 되는 문제였습니다.

 

코드 )

package me.joyeonggyu;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.*;


public class Main{
    public static void main(String args[]) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int n = Integer.parseInt(br.readLine());

      //  String binaryVal = Integer.toBinaryString(n);
      //  bw.write(binaryVal);
        bw.write(String.valueOf(Integer.bitCount(n)));
        bw.flush();
        bw.close();
    }
}

처음에 이진수로 바꿔서 갯수를 구할려고 했는데 예전에 이진수 1세는 함수를 사용했던 기억이 있어서 구글링하니깐 바로 나오더라구요 ..

 

그 함수는 바로bitCount입니다.

십진수 넣으면 그냥 바로 넣으시면 풀리는 문제입니다.

 

이상으로 포스팅 마치겠습니다.

반응형