[백준] 1094 막대기

0

백준

목록 보기
238/271
post-thumbnail

[백준] 1094 막대기

#include <iostream>
using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);

	int X;
	cin >> X;

	//가지고 있는 막대 중 가장 짧은 것의 길이
	int smallest = 64; 
	//가지고 있는 모든 막대의 길이의 합
	int sum = 64;
	//가지고 있는 막대의 수
	int answer = 1;

	while (sum > X) {
		smallest /= 2;
		if (sum - smallest >= X) {
			sum -= smallest;
			//두 개로 나눠서 하나 버림
			//막대의 수 변화 없음
		}
		else {
			//두 개로 나눠서 하나 버리지 않음
			//막대의 수 하나 증가
			answer++;
		}
	}
	cout << answer;
	return 0;
}

profile
Be able to be vulnerable, in search of truth

0개의 댓글