[BOJ] 1654번 : 랜선 자르기

2024. 9. 1. 17:25Algorithm

1. problem : 

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

 

2. solution 1 :

#include <bits/stdc++.h>
using namespace std;
int k, n;
int nums[10005];
typedef long long ll;

int main(void) {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin >> k >> n;
	for (int i = 0; i < k; i++) cin >> nums[i]; 

	ll left = 1ll; 
	ll right = *max_element(nums, nums + k); 
	ll answer = 0;
	while (left <= right) {
		ll mid = (left + right) / 2;
		int len_sum = 0;
		for (int i = 0; i < k; i++) {
			len_sum += nums[i] / mid; 
		}
		if (len_sum < n) right = mid - 1;
		else if (len_sum >= n) {
			left = mid + 1;
			answer = mid;
		}
	}
	cout << answer << '\n';
}

'Algorithm' 카테고리의 다른 글

[BOJ] 11055번 : 가장 큰 증가하는 부분 수열  (0) 2024.09.02
[BOJ] 1912번 : 연속합  (0) 2024.09.01
[BOJ] 2193번 : 이친수  (0) 2024.09.01
[BOJ] 11727번 : 2 x n 타일링 2  (1) 2024.09.01
[BOJ] 1932번 : 정수 삼각형  (0) 2024.09.01