리뷰라는 목록과 임계값 t가 있다고 가정합니다. 리뷰[i]의 각 항목에는 [x, y]가 있다는 것은 제품 i가 x개의 별 5개 등급과 y개의 리뷰를 가지고 있음을 의미합니다. 해당 항목 목록에 대한 별 5개 리뷰의 비율이 최소 t%가 되도록 필요한 추가 별 5개 리뷰의 최소 수를 찾아야 합니다.
따라서 입력이 리뷰 =[[3, 4],[1, 2],[4, 6]] 임계값 =78과 같으면 출력은 총 8개의 별점 5개 리뷰가 있으므로 7이 됩니다. 12 리뷰. 별점 5점 리뷰의 78%에 도달하려면 별점 5점 리뷰가 7개 더 필요합니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
a :=0, b :=0
-
리뷰의 각 별 5개 수 c 및 리뷰 수 d에 대해 수행
-
a :=a + c
-
b :=b + d
-
-
a * 100>=t * b이면
-
0 반환
-
-
델타 :=t * b - 100 * a
-
(델타 +(99 - t))/(100 - t)
의 반환 바닥
예시
더 나은 이해를 위해 다음 구현을 살펴보겠습니다.
def solve(reviews, t): a = 0 b = 0 for c, d in reviews: a += c b += d if a * 100 >= t * b: return 0 delta = t * b - 100 * a return (delta + (99 - t)) // (100 - t) reviews = [ [3, 4], [1, 2], [4, 6] ] t = 78 print(solve(reviews, t))
입력
[[3, 4], [1, 2],[4, 6] ],78
출력
7