모든 챌린지
어려움 0명 해결 정답률 0%

최소 엘리베이터 탑승 횟수

사람들을 가능한 한 적은 횟수의 무게 제한 엘리베이터 탑승 그룹으로 나누세요.

각 사람은 정확히 한 번씩 탑승해야 합니다. 한 그룹의 총 무게가 capacity 이하라면 함께 탑승할 수 있습니다. 사람들은 자유롭게 재조합할 수 있으며, 입력 순서는 중요하지 않습니다. 탑승 횟수를 최소화하세요.

elevator_rides(weights, capacity)를 구현하세요.

입력

weights: 각 사람의 몸무게입니다.

capacity: 한 번 탑승 시 허용되는 최대 총 무게입니다.

출력

필요한 최소 탑승 횟수를 반환하세요.

제약 조건

1 ≤ people ≤ 20. 1 ≤ capacity ≤ 1,000,000,000. 모든 몸무게는 1 이상 capacity 이하입니다.

예시

예시 1
입력:
weights = [3, 4, 5]
capacity = 7

예상 출력:
expected = 2
입력:
std::vector<long long> weights = {3, 4, 5};
long long capacity = 7;

예상 출력:
long long expected = 2;
입력:
long[] weights = new long[] {3, 4, 5};
long capacity = 7;

예상 출력:
long expected = 2;

설명

3과 4를 함께 보내고 5는 따로 보냅니다. 총 무게 12는 용량 7인 한 번의 탑승에 모두 태울 수 없습니다.

예시 2
입력:
weights = [2, 2, 2]
capacity = 6

예상 출력:
expected = 1
입력:
std::vector<long long> weights = {2, 2, 2};
long long capacity = 6;

예상 출력:
long long expected = 1;
입력:
long[] weights = new long[] {2, 2, 2};
long capacity = 6;

예상 출력:
long expected = 1;

설명

세 사람 모두 함께 탈 수 있습니다. 2 + 2 + 2 = 6이므로 가능합니다.

참고 자료

이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.

다른 사람의 풀이 보기

커뮤니티 솔루션

아직 공개된 풀이가 없습니다. 문제를 풀고 첫 풀이를 공유하세요.