[백준/BOJ] 14233. 악덕 사장 [Silver 2]

jychan99·2021년 12월 24일
0
post-thumbnail
  1. 악덕 사장

문제출처 : https://www.acmicpc.net/problem/14233

#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
	int n, k, Ai[50000] = { 0 }, temp=0;

	cin >> n;
	for (int i = 0; i < n; i++)
		cin >> Ai[i];

	sort(Ai, Ai+n);

	k = Ai[0];
	for (int i = 1; i < n; i++)
	{
		temp = 0;
		if (k * (i + 1) > Ai[i])
		{
			temp = Ai[i] / (i + 1);
			k = temp;
		}
	}

	cout << k;

	return 0;
}

이게 문제해설이 진짜 이상하게 되어있어서... 이해하는데 오래걸렸다.
조건이 많이빠진게있는데,
일단 입력은 무작위로 들어올것이다 (정렬하라는뜻)
그리고 k는 Ai중 최솟값을 넘지 않는다.
문제에는 마감기한이라고 되어있는데, 일을 마치는데 걸리는 최대시간을 의미하는것 같다.
즉, 최대한 많이 일하라는 뜻은 그 시간보다 작은것은 허용되나 넘어서는 안된다.
Ai의 첫번째인덱스, 두번째 인덱스, 세번째 인덱스는 각각
하루동안 걸리는 최대시간, 이틀동안 걸리는 최대시간, 3일동안 걸리는 최대시간이다.

다시말해서
A1, A2, A3이 각각 32 44 78이라고 치면,
32 >= k1 → k=32
44 >= k
2 → k=22
78 >= k*3 → k= 26
이 되어야한다. 그러므로 k의 최대값은 Ai중 최솟값을 넘지않고, 각Ai를 넘지않는, 22가 답이 되겠다.

profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐥

0개의 댓글