목록 [x1, y1, x2, y2]로 표시되는 직사각형이 있다고 가정합니다. 여기서 (x1, y1)은 왼쪽 하단 모서리의 좌표이고 (x2, y2)는 상단의 좌표입니다. 오른쪽 모서리. 이제 교차 영역이 양수이면 두 개의 직사각형이 겹칩니다. 따라서 모서리나 모서리에서만 닿는 두 개의 직사각형이 겹치지 않는다는 것을 이해할 수 있습니다.
두 개의 (축 정렬) 사각형이 있는 경우 겹치는지 여부를 확인해야 합니다.
따라서 입력이 R1 =[0,0,2,2], R2 =[1,1,3,3]과 같으면 출력은 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- R1[0]>=R2[2] 또는 R1[2]<=R2[0] 또는 R1[3]<=R2[1] 또는 R1[1]>=R2[3]이면
- 거짓을 반환
- 그렇지 않으면
- 참 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
class Solution: def isRectangleOverlap(self, R1, R2): if (R1[0]>=R2[2]) or (R1[2]<=R2[0]) or (R1[3]<=R2[1]) or (R1[1]>=R2[3]): return False else: return True ob = Solution() print(ob.isRectangleOverlap([0,0,2,2],[1,1,3,3]))
입력
[0,0,2,2],[1,1,3,3]
출력
True