https://www.acmicpc.net/problem/3008
문제요약
- 1500개의 점에서 직각 삼각형의 개수 찾기
- 중복되는 점 없음
접근법
- 길이로 접근하려고 했으나 어떻게 하든 N^3임
- 한 점을 기준으로 연결된 점들의 기울기를 구할 수 있음
- 기울기가 서로 직각인 것들의 쌍의 개수를 구할 수 있음 : map사용
- a / b 와 -b / a는 직각, 수평/수직선은 비슷하게 처리해도 됨
- 1500개 점에 대해서 반복
- O(N∗N∗log(N))
- 전체 점에 대해서 map을 다 구해놓고 시작을 하니 메모리 초과가 발생했음(cpp)
- 각각의 점에 대해 작업을 하는 시점에 map을 생성하니 통과했음(cpp)
- python에서는 그냥 구현해도 메모리 초과/시간초과는 발생하지 않았음. python 채점 사이트 보정이 들어가서 그런듯