1 분 소요

1828. Queries on Number of Points Inside a Circle

class Solution {
public:
    vector<int> countPoints(vector<vector<int>>& points, vector<vector<int>>& queries) {
        vector<int> result;
        for (auto &q: queries) {
            int cnt = 0;
            for (auto &p: points) {
                int dx = p[0] - q[0];
                int dy = p[1] - q[1];
                if (dx * dx + dy * dy <= q[2] * q[2]) {
                    ++cnt;
                }
            }
            result.push_back(cnt);
        }
        return result;
    }
};

주어진 query 의 중심과 points 의 위치의 거리는 피타고라스 정리를 사용하여 구할 수 있고,
이 거리가 반지름 이하이면 해당 점은 원 안에 위치 한다고 할 수 있다.

sqrt 를 구하는거 보다 반지름의 제곱이 더 간단하므로 두점 사이의 거리 제곱, 반지름의 제곱을 비교해서 원안에 점이 있는지 판단한다.

n == points.size() m == queries.size()

Time: O(n + m)

Space: O(1)

카테고리:

업데이트:

댓글남기기