끄적끄적 코딩
article thumbnail
Published 2019. 9. 13. 15:08
[C++] 백준 1094번 막대기 알고리즘
728x90

막대를 반으로 잘라서 Xcm를 만들 때
최소 막대기의 수를 구하는 문제입니다.

 

#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

int main(int argc, char* argv[])
{
	int n = 64;
	int sum = 0;
	int find;
	vector<int> v;

	cin >> find;

	while (1) {
		if (n + sum == find) {
			v.push_back(n);
			sum += n;
			break;
		}
		else if (n + sum < find) {
			v.push_back(n);
			sum += n;
			n /= 2;
		}
		else if (n + sum > find) {
			n /= 2;
		}
	}

	cout << v.size() << endl;

	return 0;
}

'알고리즘' 카테고리의 다른 글

[C++] 백준 1076번 저항  (0) 2019.09.13
[C++] 백준 2010번 플러그  (0) 2019.09.13
[C++] 백준 3046번 R2  (0) 2019.09.13
[C++] 백준 10798번 세로읽기  (0) 2019.09.13
[C++] 백준 2960번 에라토스테네스의 체  (0) 2019.09.13

검색 태그