[백준] 7453번 합이 0인 네 정수 파이썬

dongEon·2024년 5월 3일
0

문제링크: https://www.acmicpc.net/problem/7453

문제해결 아이디어

  • n이 4000이므로 2개, 2개씩 묶어서 합을 구한다
  • 2개의 합의 값을 key로 하고 key의 갯수를 value으로 하는 딕셔너리를 만든다
  • 나머지 2개의 합이 * -1 이 키에 존재하면 value 만큼 정답에 더한다.

소스코드

import sys
from collections import defaultdict
input = sys.stdin.readline

n = int(input())

a,b,c,d = [],[],[],[]

for _ in range(n):
    q,w,e,r = map(int, input().split())

    a.append(q)
    b.append(w)
    c.append(e)
    d.append(r)

dic = defaultdict(int)

for i in a:
    for j in b:
        dic[i+j] += 1

answer = 0

for i in c:
    for j in d:
        target = -1 * (i+j)
        if target in dic:
            answer += dic[target]            

print(answer)
profile
반갑습니다! 알고리즘 문제 풀이 정리 블로그 입니다. 피드백은 언제나 환영입니다!

0개의 댓글