[LeetCode] Rectangle Overlap

아르당·2026년 3월 2일

LeetCode

목록 보기
180/213
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

X축에 평행한 직사각형은 [x1, y1, x2, y2]와 같은 리스트로 표현된다. (x1, y1)은 직사각형의 좌하단 모서리이고, (x2, y2)는 우상단 모서리이다.이 직사각형의 위쪽과 아래쪽 변은 X축에 평행하고, 왼쪽과 오른쪽 변은 Y축에 평행한다.

두 직사각형의 교집합의 넓이가 양수이면 두 직사각형은 겹친다. 즉, 모서리나 변이 맞닿는 두 직사각형은 겹치지 않는다.

축에 정렬된 두 직사각형 rec1과 rec2가 주어졌을 때, 두 직사각형이 겹치면 true, 그렇지 않으면 false를 반환해라.

Example

#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]

Constraints

  • rec1.length == 4
  • rec2.length == 4
  • -10^9 <= rec1[i], rec2[i] <= 10^9
  • rec1과 rec2는 면적이 9이 아닌 유효한 직사각형을 나타낸다.

Solved

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]
        ;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글