문제 설명
서로 길이가 다른 여러 개의 초콜릿 바가 있습니다. 이 초콜릿 바를 n명의 친구들에게 공평하게 나누어 주고자 합니다.
각 초콜릿 바는 1cm 단위로 자를 수 있습니다. 하지만 초콜릿을 이어 붙여서 사용할 수는 없습니다.
이 초콜릿 바들을 길이가 모두 같은 n개 이상의 조각으로 잘라 친구들에게 나눠주고 남은 초콜릿은 버립니다.
친구의 수 n과 초콜릿 바 길이(cm)를 담은 배열 choco가 주어졌을 때, n명의 친구들에게 공평하게 나눠줄 수 있는 초콜릿 바 조각의 최대 길이를 반환하는 solution 함수를 작성하시오. 단, 나눠주는 조각의 길이는 최소 1cm 이상이어야 하며, 어떤 길이로도 동일한 길이의 조각을 n개 이상 만들 수 없다면 0을 반환합니다.
예를 들어, choco가 [802, 743, 457, 539]이고, n이 11로 주어진다고 가정합니다.
4개의 초콜릿 바를 길이 250cm의 초콜릿 조각으로 나눈다면, 총 개의 초콜릿 조각만 만들 수 있으므로 11명의 친구들에게 나눠줄 수 없습니다.
반면, 길이 150cm의 초콜릿 조각으로 나눈다면, 총 개의 초콜릿 조각을 만들 수 있어 11명의 친구들에게 나눠줄 수 있습니다.
하지만, 길이 200cm의 초콜릿 조각으로 나눈다면, 총 개의 초콜릿 조각을 만들 수 있어 더 긴 길이로 11명의 친구들에게 나눠줄 수 있습니다. 이때 해당 길이가 최대 길이가 되며, 더 긴 길이로 잘라 나눠줄 수 없습니다.
따라서 최종적으로 200을 반환합니다.
제한 사항
n은 1 이상 1,000,000 이하의 자연수입니다.choco의 길이는 1 이상 1,000,000 이하입니다.choco의 각 원소는 1 이상 1,000,000,000 이하의 자연수입니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | n | choco | return |
|---|---|---|---|
| 1 | 11 | [802,743,457,539] | 200 |
| 2 | 11 | [2,3,4] | 0 |
| 3 | 1 | [10,100,1000] | 1000 |
1번 테스트케이스 설명
- 각 초콜릿 바에서 200cm 씩 자르면
802cm → 4개, 743cm → 3개, 457cm → 2개, 539cm → 2개 = 총 11개를 만들 수 있습니다. 이보다 긴 길이로 자르면 불가능하므로,200을 반환합니다.
2번 테스트케이스 설명
- 각 초콜릿 바를 1cm 씩 잘라도 총 9개밖에 만들 수 없으므로 0을 반환합니다.
3번 테스트케이스 설명
- 한 명에게 길이가 1000cm인 초콜릿 바를 그대로 줄 수 있으므로
1000을 반환합니다.