상위 150개 인터뷰쉬움

사각형 감지

'사각형 감지' 문제에 대한 자세한 가이드 및 Python 구현입니다.

문제 설명

쉬움

X-Y 평면에 점의 흐름이 제공됩니다. 다음과 같은 데이터 구조를 설계합니다.

- 스트림에서 새로운 포인트를 추가합니다. 중복 포인트는 허용되며 다른 포인트로 처리되어야 합니다.

- 쿼리 포인트가 주어지면 세 포인트와 쿼리 포인트가 양의 영역을 갖는 축 정렬 정사각형을 형성하도록 데이터 구조에서 세 포인트를 선택하는 방법의 수를 계산합니다.

축 정렬 정사각형은 모서리의 길이가 모두 같고 x축 및 y축에 평행하거나 수직인 정사각형입니다.

작업이 'DetectSquares', 'add' 또는 'count'이고 인수가 해당 매개변수인 detectSquares(operations: list, arguments: list) -> list 함수를 구현하세요. 결과 목록을 반환합니다(생성자 및 추가의 경우 없음).

제약
  • point.length == 2
  • 0 <= x, y <= 1000
  • At most 3000 calls in total will be made to add and count

Example 1
Input
["DetectSquares","add","add","add","count","count","add","count"], [[],[3,10],[11,2],[3,2],[11,10],[14,8],[11,2],[11,10]]
Output
[None,None,None,None,1,0,None,2]
Explanation

After adding (3,10), (11,2), (3,2): count(11,10) finds 1 square with corners (3,10),(11,10),(11,2),(3,2). count(14,8) finds 0. After adding another (11,2): count(11,10) finds 2 squares (using each copy of (11,2)).

Need a Hint?
세트나 힙과 같은 수학 및 기하학 관련 데이터 구조를 사용해 보세요.
Edge Cases to Watch
  • 빈 입력 구조
  • 단일 요소 입력
  • 큰 수치 범위

해결할 준비가 되셨나요?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

편집기에서 열기
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

권장 Python 리소스

관련 대화형 튜토리얼, 치트 시트, 코드 비교를 통해 지식을 확장하세요.