728x90
Hint
1. ์๊ณผ ์ ๋ค์ ์ต๋ ๊ฐ์๊ฐ ๊ฐ๊ฐ 500๊ฐ์ด๊ธฐ ๋๋ฌธ์ for๋ฌธ 2๊ฐ๋ฅผ ์ฌ์ฉํด์ ์ผ์ผ์ด ๋น๊ตํด๋ ๋๋ค
2. Follow up์ O(n)์ผ๋ก ํ์ด๋ณด๋ผ๊ณ ๋์ด์์ง๋ง ์ด๊ฑด ๋์ค์ ๋์ ...^^
LeetCode 1828๋ฒ: Queries on Number of Points Inside a Circle (ํ์ด๋ณด๊ธฐ)
class Solution:
def countPoints(self, points: List[List[int]], queries: List[List[int]]) -> List[int]:
# points๋ฅผ x, y ์์๋ก ์์ ์ซ์๋ถํฐ ํฐ ์ซ์๊น์ง ์ ๋ ฌํ๋ค
points = sorted(points, key=lambda x: (x[0],x[1]))
answer = []
for query in queries:
x, y, r = query
count = 0
for point in points:
px, py = point
# points๋ฅผ ์ ๋ ฌํ๊ธฐ ๋๋ฌธ์ ์์ ์ต๋ x, y๋ฅผ ๋์ด๊ฐ๋ ์ ์ดํ๋ก๋ ํ์ธ ํ ํ์๊ฐ ์๋ค
if (px >= x + r) & (py >= y + r):
break
# ์ ์ค์ฌ์์ point๊น์ง์ ๊ธธ์ด๊ฐ ๋ฐ์ง๋ฆ๋ณด๋ค ๊ฐ๊ฑฐ๋ ์์ ๋๋ง ์ ์์ ์๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์์ ํฌํจํ๋ค
if r >= ((px-x)**2 + (py-y)**2)**0.5:
count += 1
answer.append(count)
return answer
'๐งฉ Algorithm > ๊ตฌํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[LeetCode] 2181๋ฒ: ๊ธฐ์กด ์ฐ๊ฒฐ ๋ฆฌ์คํธ ์์ ํ๊ธฐ (0) | 2023.04.30 |
---|---|
[LeetCode] 876๋ฒ: ์ฐ๊ฒฐ ๋ฆฌ์คํธ (0) | 2023.03.11 |
[๋ฐฑ์ค] 10808๋ฒ: ์ํ๋ฒณ ๊ฐ์ (0) | 2023.03.06 |
[๋ฐฑ์ค] 1929๋ฒ: ์์ ๊ตฌํ๊ธฐ (0) | 2023.02.18 |
์๋ผํ ์คํ ๋ค์ค์ ์ฒด (0) | 2023.02.13 |
๋๊ธ