본문 바로가기
Problem Solving/BOJ

[Dict] 2143 두 배열의 합

by Bokoo14 2023. 1. 15.

https://www.acmicpc.net/problem/2143

 

2143번: 두 배열의 합

첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1 ≤ m ≤ 1,000)이 주어지고, 그

www.acmicpc.net

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

t = int(input())
n = int(input())
A = list(map(int, input().split()))
m = int(input())
B = list(map(int, input().split()))

Adic=defaultdict(int)
Bdic=defaultdict(int)
for i in range(n):
    for j in range(i, n):
        Adic[sum(A[i:j+1])]+=1
for i in range(m):
    for j in range(i, m):
        Bdic[sum(B[i:j+1])]+=1

answer=0
for psum in Adic.keys():
    answer+=Adic[psum]*Bdic[t-psum]
print(answer)

'Problem Solving > BOJ' 카테고리의 다른 글

[Combination] 16938 캠프 준비  (0) 2023.01.18
[BOJ] 16928 뱀과 사다리 게임  (1) 2023.01.18
[MST] 1197 최소 스패닝 트리  (0) 2023.01.15
[Dijkstra] 1916 최소비용 구하기  (0) 2023.01.12
[BFS] 7569 토마토  (0) 2023.01.09