문제 링크 

 

64센티 막대를 반으로 계속 나누게 된다. 

2로 나누면 한 조각이  64 -> 32 ->  16 -> 8 -> 4 -> 2 -> 1  로 쪼개진다. 

 

이 중에 사용할 조각이 있고, 아닌 조각이 있을 것이다.

 

x 센티를 만들기 위해 64센티를 이진수로 바꾸면된다. 

쪼개진 막대를 사용 할지, 말지 선택하는 것과 같다. 

 

 

"맞았습니다" 코드 링크 

#include <bits/stdc++.h>
using namespace std;

int x, cnt;
int main(void) {
  ios::sync_with_stdio(0);
  cin.tie(0);

  cin >> x;
  while(x >= 1){
    if(x % 2 == 1) cnt++;
    x /= 2;
  }
  cout << cnt;
  return 0;
}
728x90

'알고리즘 > 백준' 카테고리의 다른 글

저작권 백준 2914번 c++  (0) 2022.02.17
민균이의 비밀번호 백준 9933번 c++  (0) 2022.02.17
수들의 합 백준 1789번 c++  (0) 2022.02.16
좌표 압축 백준 18870번 c++  (0) 2022.02.16
수 정렬하기 2 백준 2751번 c++  (0) 2022.02.16

+ Recent posts