코린이의 소소한 공부노트

[LeetCode/Medium] 1828. Queries on Number of Points Inside a Circle 본문

코딩테스트 풀이/JAVA

[LeetCode/Medium] 1828. Queries on Number of Points Inside a Circle

무지맘 2022. 8. 17. 15:01

1. Input

1) 2차원 좌표평면의 점의 좌표를 나타내는 배열 {x, y}를 담고 있는 int 배열 points

2) 중심이 (x,y)이고 반지름이 r인 원을 나타내는 배열 {x, y, r}를 담고 있는 int 배열 queries

 

2. Output

1) 정답을 담고 있는 int 배열 answer

2) answer[j] = queries[j] 내부에 포함되는  points[i]의 개수

3) 원 위의 점(가장자리)은 내부로 간주

 

3. Constraint

1) 1 <= points.length <= 500

2) points[i].length == 2

3) 0 <= x​​​​​​i, y​​​​​​i <= 500

4) 1 <= queries.length <= 500

5) queries[j].length == 3

6) 0 <= xj, yj <= 500

7) 1 <= rj <= 500

 

4. Example

Input: points = { {1,3}, {3,3}, {5,3}, {2,2} }, queries = { {2,3,1}, {4,3,1}, {1,1,2} }
Output: {3,2,2}

 

5. Code

int[] answer = new int[queries.length];
for(int i=0 ; i<answer.length ; i++){ // queries
    for(int j=0 ; j<points.length ; j++){ // points
        double x= Math.pow(points[j][0]-queries[i][0],2); // x^2
        double y = Math.pow(points[j][1]-queries[i][1],2); // y^2
        double d = Math.sqrt(x+y); // root(x^2 + y^2)
        if(d<=queries[i][2])
            answer[i]++;
    }
}
return answer;

  - 원의 중심과 점과의 거리 <= 반지름일 때 내부에 있다고 할 수 있음