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

파이썬에서 두 개의 직사각형이 차지하는 전체 면적을 찾는 프로그램

<시간/>

2D 평면에서 두 개의 직사각형으로 덮인 전체 면적을 찾고 싶다고 가정합니다. 여기서 각 직사각형은 그림과 같이 왼쪽 하단 모서리와 오른쪽 상단 모서리로 정의됩니다.

파이썬에서 두 개의 직사각형이 차지하는 전체 면적을 찾는 프로그램

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

  • 너비_1 :=|C-A|, 높이_1 :=|D-B|
  • 너비_2 :=|G-E|, 높이_2 :=|H-F|
  • 면적:=width_1*height_1 + width_2*height_2
  • (GC) 또는 (F>D) 또는 (H
  • 반납 구역
  • 그렇지 않으면
    • p :=A, E의 최대값
    • q :=B, F의 최대값
    • r :=C, G의 최소값
    • :=D, H의 최소값
    • width_3 :=|r-p|
    • 높이_3 :=|s-q|
    • 반환 영역 - (width_3*height_3)
  • 예시

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

    def solve(A, B, C, D, E, F, G, H):
       width_1 = abs(C-A)
       height_1 = abs(D-B)
    
       width_2 = abs(G-E)
       height_2 = abs(H-F)
    
       area = width_1*height_1 + width_2*height_2
    
       if (G<A) or (E>C) or (F>D) or (H<B):
          return area
       else:
          p = max(A,E)
          q = max(B,F)
          r = min(C,G)
          s = min(D,H)
    
          width_3 = abs(r-p)
          height_3 = abs(s-q)
    
          return area - (width_3*height_3)
    
    A = -3
    B = 0
    C = 3
    D = 4
    E = 0
    F = -1
    G = 9
    H = 2
    print(solve(A, B, C, D, E, F, G, H))

    입력

    -3, 0, 3, 4, 0, -1, 9, 2
    

    출력

    45