728x90
반응형
1654번 랜선 자르기
문제풀이
#include <iostream>
#include <string.h>
using namespace std;
void fast_io(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
}
int k, n, res = 0;
int max_arr_value = 0;
long long low = 1, high, mid;
int main(void)
{
fast_io();
cin >> k >> n;
int arr[k + 1];
for (int i = 0; i < k; i++)
{
cin >> arr[i];
if (max_arr_value < arr[i])
max_arr_value = arr[i];
}
high = max_arr_value;
while (low <= high)
{
mid = (low + high) / 2;
int ckn = 0;
for (int i = 0; i < k; i++)
{
ckn += arr[i] / mid;
}
if (ckn >= n)
{
low = mid + 1;
if (res < mid)
res = mid;
}
else
{
high = mid - 1;
}
}
cout << res;
}
식을 다 만든거 같은데 결과값이 틀려서 애먹었다.
원인은 ckn 변수의 초기화 위치였다.
728x90
반응형
'자라는 개발자 > 문제풀이' 카테고리의 다른 글
백준 C/C++ 11050번 이항 계수 1 (0) | 2021.12.23 |
---|---|
백준 C++ 11651번 좌표정렬하기 2 (0) | 2021.12.22 |
백준 C++ 10866번 덱 (1) | 2021.12.19 |
백준 C/C++ 10250번 ACM 호텔 (0) | 2021.12.18 |
백준 C++ 10828번 스택 (1) | 2021.12.17 |