[백준] 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개의 댓글