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

파이썬으로 컵과 선반을 깔끔하게 정리할 수 있는지 알아보기

<시간/>

배열 p에 3가지 종류의 컵이 있고 배열 q에 접시가 있고 m개의 선반이 있다고 가정하면 컵과 선반을 깔끔하게 배열할 수 있는지 확인해야 합니다.

다음 조건을 따르면 컵과 접시의 배열이 깔끔하다고 말할 수 있습니다. 1. 어떤 선반에도 컵과 접시를 둘 수 없습니다. 2. 자신은 최대 5개의 컵을 포함할 수 있습니다. 3. 자신은 최대 10개의 접시를 포함할 수 있습니다.

따라서 입력이 p =[4, 3, 7] q =[5, 9, 10] m =11과 같으면 총 컵 수 =14, 3개의 선반이 필요하고 총 접시가 필요하므로 출력은 True가 됩니다. =24, 3개의 선반이 필요합니다. 따라서 필요한 총 선반 =3 + 3 =6이며, 이는 주어진 선반 수 m보다 작습니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • sum_p :=0, sum_q :=0

  • 범위 0에서 p 크기까지의 i에 대해

    • sum_p :=sum_p + p[i]

  • 범위 0에서 q까지의 i에 대해 수행

    • sum_q :=sum_q + q[i]

  • m_p :=(sum_p + 4) / 5

  • m_q :=(sum_q + 9) / 10

  • m_p + m_q <=m이면

    • 참을 반환

  • 그렇지 않으면

    • 거짓을 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

def is_valid(p, q, m):
   sum_p = 0
   sum_q = 0
   for i in range(0, len(p)):
      sum_p += p[i]
   for i in range(0,len(q)):
      sum_q += q[i]
   m_p = (sum_p + 5 - 1) / 5
   m_q = (sum_q + 10 - 1) / 10
   if(m_p + m_q <= m):
      return True
   else:
      return False
p = [4, 3, 7]
q = [5, 9, 10]
m = 11

print(is_valid(p ,q ,m))

입력

[4, 3, 7], [5, 9, 10], 11

출력

True