2013. Detect Squares (medium)

2021. 9. 21. 13:13Algorithm

    목차
반응형

좌표들이 주어지고, 특정 좌표가 주어질 시

이 좌표로 square를 몇 개 만들수 있는지 리턴

 

def __init__(self):
    self.cnt = collections.defaultdict(int)
    self.coords = set()

def add(self, point: List[int]) -> None:
    self.cnt[tuple(point)] += 1
    self.coords.add(tuple(point))

def count(self, point: List[int]) -> int:
    cx, cy = point
    
    num = 0
    for x, y in self.coords:
        if abs(cx - x) == 0 or abs(cy - y) == 0 or \
            abs(cx - x) != abs(cy - y):
            continue
        
        num += self.cnt[(x, y)] * self.cnt[(cx, y)] * self.cnt[(x, cy)]
    
    return num

동일 선상의 좌표 및 정사각형이 아닌 것은 제외

반응형