C# LeetCode 1792: 최대 평균 통과 비율 ... 노트

C# LeetCode 1792: 최대 평균 통과 비율 - (중간)

LeetCode 문제는 추가 학생을 투입하여 여러 수업에서 평균 합격률을 최대화하는 것을 요구합니다. 우선순위 큐를 사용하여 가장 높은 잠재적 이익을 가진 수업을 효율적으로 추적합니다. 각 수업의 초기 합격률과 총 학생 수가 우선순위 큐에 추가됩니다. 알고리즘은 합격률 향상에 가장 큰 이익을 주는 수업에 반복적으로 추가 학생을 할당합니다. 학생 추가로 인한 이익은 추가 전후의 비율 차이를 기반으로 계산됩니다. 코드는 초기에는 실제로 학생을 추가하지 않고, 가상의 이익만 계산합니다. 이 계산은 전반적인 비율 향상을 최적화하기 위해 수업의 우선순위를 정합니다. 모든 추가 학생을 할당한 후, 최종 평균 합격률은 모든 수업의 합격률 합계를 총 수업 수로 나누어 계산됩니다. 코드는 비율과 이익을 계산하기 위해 헬퍼 함수를 사용합니다. 사용자 정의 비교자를 사용하는 우선순위 큐는 항상 가장 높은 이익을 가진 수업이 선택되도록 보장합니다. 최종 평균은 총 합격률의 합을 수업 수로 나누어 결정됩니다.