문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
X축에 평행한 직사각형은 [x1, y1, x2, y2]와 같은 리스트로 표현된다. (x1, y1)은 직사각형의 좌하단 모서리이고, (x2, y2)는 우상단 모서리이다.이 직사각형의 위쪽과 아래쪽 변은 X축에 평행하고, 왼쪽과 오른쪽 변은 Y축에 평행한다.
두 직사각형의 교집합의 넓이가 양수이면 두 직사각형은 겹친다. 즉, 모서리나 변이 맞닿는 두 직사각형은 겹치지 않는다.
축에 정렬된 두 직사각형 rec1과 rec2가 주어졌을 때, 두 직사각형이 겹치면 true, 그렇지 않으면 false를 반환해라.
#1
Input: rec1 = [0, 0, 2, 2], rec2 = [1, 1, 3 ,3]
Output: true
#2
Input: rec1 = [0, 0, 1, 1], rec2 = [1, 0, 2, 1]
Output: false
#3
Input: rec1 = [0, 0, 1, 1], rec2 = [2, 2, 3, 3]
class Solution {
public boolean isRectangleOverlap(int[] rec1, int[] rec2) {
return
rec1[0] < rec2[2] &&
rec1[1] < rec2[3] &&
rec1[2] > rec2[0] &&
rec1[3] > rec2[1]
;
}
}