[백준 알고리즘]/[C++]

1094번 막대기 | Baekjoon BOJ 백준1094 C++ 코드, 해설, 풀이

말하는펭귄 2021. 1. 18. 12:20
728x90
반응형

 

 

이번 포스팅은 백준 1094번 막대기입니다.

아래 url를 클릭하시면 백준 사이트에서 문제를 볼 수 있습니다.

www.acmicpc.net/problem/1094

 

1094번: 막대기

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

www.acmicpc.net

 

 

 

기본 알고리즘

절반으로 자른 막대를 모두 합한다 = 이진수

 

23 = 16 + 4 + 2 + 1

32 = 32

64 = 64

48 = 32 + 16

 

출력 = 이진수 표현에서 1의 개수

 

 

 

전체 코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//백준1094 막대기
 
#include <iostream>
using namespace std;
 
int main() {
    int X;
    cin >> X;
 
    int ans = 0;
    while (X>0) {
        if (X % 2 == 1) {
            ans++;
        }
        X /= 2;
    }
 
    cout << ans;
 
}
cs

 

 

 

 

728x90
반응형