✍ 내 코드
from sys import stdin
from collections import defaultdict
read = stdin.readline
n = int(read())
A, B, C, D = [], [], [], []
dic1 = {}
dic2 = {}
for _ in range(n):
a, b, c, d = map(int, read().split())
A.append(a)
B.append(b)
C.append(c)
D.append(d)
result = 0
for a in A:
for b in B:
dic1[a + b] = dic1.get(a + b, 0) + 1
for c in C:
for d in D:
result += dic1.get(-(c + d), 0)
print(result)
✍ 팁
- n^4 으로 풀면 시간 초과가 나오기 때문에 두그룹씩 묶어서 n^2으로 접근
- defaultdict와 같은 문법을 사용하여 defaultdict를 이용해 봤지만 어떻게 해도 시간초과가 나옴
큰차이가 나지는 않지만 시간초과가 타이트하게 잡혀있기 때문으로 보임