2개의 값 n과 m이 있다고 가정합니다. n x m 크기의 직사각형 안에 설정할 수 있는 크기 2x1의 직사각형 수를 찾아야 합니다. 고려해야 할 몇 가지 조건이 있습니다. -
-
두 개의 작은 직사각형은 겹칠 수 없습니다.
-
모든 작은 직사각형은 완전히 큰 직사각형 안에 있습니다. 더 큰 직사각형의 가장자리를 만지는 것은 허용됩니다.
따라서 입력이 다음과 같으면
n =3, m =3이면 출력은 4가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
n mod 2가 0과 같으면
-
리턴(n / 2) * m
-
-
그렇지 않으면 m mod 2가 0이면
-
반환(m / 2) * n
-
-
반환 (n * m - 1) / 2
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def count_rect(n, m): if (n % 2 == 0): return (n / 2) * m elif (m % 2 == 0): return (m // 2) * n return (n * m - 1) // 2 n = 3 m = 3 print(count_rect(n, m))
입력:
3, 3
출력
4