Doby's Lab

백준 1094번: 막대기 (C++) 본문

PS/BOJ

백준 1094번: 막대기 (C++)

도비(Doby) 2022. 11. 16. 16:08

https://www.acmicpc.net/problem/1094

 

1094번: 막대기

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

www.acmicpc.net


Solved By: Math

 

문제를 해석하면 주어진 수가 몇 개의 2의 제곱수로 이루어져 있는지 묻는 문제였습니다. 이진수에 의하면 모든 수는 이진수로 표현 가능하기 때문에 이런 특성을 활용하여 아이디어를 떠올릴 수 있었습니다.

#include <iostream>
using namespace std;

int main(){
    int n; cin >> n;
    int two = 64;
    
    int ans = 0;
    
    while(two){
        if(n / two){
            ans++;
            n -= two;
        }
        two >>= 1;
    }
    
    cout << ans;
    return 0;
}

 

728x90

'PS > BOJ' 카테고리의 다른 글

백준 1146번: 지그재그 서기 (C++)  (0) 2022.11.18
백준 1722번: 순열의 순서 (C++)  (0) 2022.11.16
백준 1213번: 팰린드롬 만들기 (C++)  (0) 2022.11.15
백준 14401번: 악덕 나라 (C++)  (0) 2022.11.14
백준 1143번: 경찰 (C++)  (2) 2022.11.14