배열 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