问题描述
在小C的班级里,有 N
个学生,每个学生的成绩是 A_i
。小C发现了一件有趣的事:当且仅当某个学生的成绩小于或等于自己的有更多人时,这个学生会说谎。换句话说,如果分数小于等于他的学生数量大于比他分数高的学生数量,则他会说谎。
现在,小C想知道班里有多少个学生会说谎。
代码
def solution(A):
# Edit your code here
A.sort()
n = len(A)
q = max(A, key=lambda x: x >= A[n // 2])
return n - A.index(q)
if __name__ == "__main__":
# Add your test cases here
print(solution([100, 100, 100]) == 3)
print(solution([2, 1, 3]) == 2)
print(solution([30, 1, 30, 30]) == 3)
print(solution([19, 27, 73, 55, 88]) == 3)
print(solution([19, 27, 73, 55, 88, 88, 2, 17, 22]) == 5)