Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 임계값 백분율에 도달하는 데 필요한 별 5개 리뷰 수를 계산하는 프로그램

<시간/>

리뷰라는 목록과 임계값 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