From 68840e5464bb10d2e6c8bc49f1221853ca4a0511 Mon Sep 17 00:00:00 2001 From: SinnoLn Date: Sat, 3 Oct 2026 18:34:14 +0900 Subject: [PATCH] 1401. Circle and Rectangle Overlapping --- ...01. Circle and Rectangle Overlapping.java" | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 "leetcode3/\354\235\264\354\247\204\355\235\254/1401. Circle and Rectangle Overlapping.java" diff --git "a/leetcode3/\354\235\264\354\247\204\355\235\254/1401. Circle and Rectangle Overlapping.java" "b/leetcode3/\354\235\264\354\247\204\355\235\254/1401. Circle and Rectangle Overlapping.java" new file mode 100644 index 00000000..75d6eab8 --- /dev/null +++ "b/leetcode3/\354\235\264\354\247\204\355\235\254/1401. Circle and Rectangle Overlapping.java" @@ -0,0 +1,24 @@ +/* + +1. 아이디어 : 기하학의 원리 활용 + 직사각형은 x,y축과 평행하므로 원과 가장 가까운 점을 찾는다. + 그 점과 원의 중심사이의 거리가 반지름보다 크다면 겹치지않고, 이하라면 겹침 + +2. 시간복잡도 : O(1) + +3. 자료구조/알고리즘 : 기하학 + + */ + +class Solution { + public boolean checkOverlap(int radius, int xCenter, int yCenter, int x1, int y1, int x2, int y2) { + // 겹치면 true, 아니면 false + + int y = Math.max(y1, Math.min(y2, yCenter)); + int x = Math.max(x1, Math.min(x2, xCenter)); + + if(((y-yCenter)*(y-yCenter) + (x-xCenter)*(x-xCenter))<=radius*radius) return true; + + return false; + } +} \ No newline at end of file