7453 - 합이 0인 네 정수
문제
정수로 이루어진 크기가 같은 배열 A, B, C, D가 있다.
A[a], B[b], C[c], D[d]의 합이 0인 (a, b, c, d) 쌍의 개수를 구하는 프로그램을 작성하시오.
코드
from collections import defaultdict
import sys
input = sys.stdin.readline
N = int(input())
A, B, C, D = [], [], [], []
for _ in range(N):
a, b, c, d = map(int, input().split())
A.append(a)
B.append(b)
C.append(c)
D.append(d)
AB = defaultdict(int)
for i in range(N):
for j in range(N):
ab = A[i] + B[j]
AB[ab] += 1
result = 0
for i in range(N):
for j in range(N):
cd = -(C[i] + D[j])
if cd in AB:
result += AB[cd]
print(result)
한마디
아이디어 떠올리는 게 굉장히 어려운 문제였던 것 같다.