143. 두 배열의 합
1. Python
from collections import defaultdict
input = sys.stdin.readline
n = int(input())
a = int(input())
alist = list(map(int, input().split()))
b = int(input())
blist = list(map(int, input().split()))
adic = defaultdict(int)
answer = 0
for i in range(a):
for j in range(i, a):
adic[sum(alist[i:j + 1])] += 1
for i in range(b):
for j in range(i, b):
answer += adic[n - sum(blist[i:j + 1])]
print(answer)
bisect 사용 코드
from sys import stdin
from bisect import *
def solve():
t = int(stdin.readline().strip())
n = int(stdin.readline().strip())
A = [0] + list(map(int, stdin.readline().split()))
m = int(stdin.readline().strip())
B = [0] + list(map(int, stdin.readline().split()))
for i in range(1, n + 1):
A[i] += A[i - 1]
for i in range(1, m + 1):
B[i] += B[i - 1]
temp = []
for i in range(m + 1):
for j in range(i + 1, m + 1):
temp.append(B[j] - B[i])
temp.sort()
ans = 0
for a1 in range(n + 1):
for a2 in range(a1 + 1, n + 1):
now = A[a2] - A[a1]
target = t - now
foo = bisect_left(temp, target)
bar = bisect_right(temp, target)
ans += bar - foo
return ans
print(solve())
Author And Source
이 문제에 관하여(143. 두 배열의 합), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@corone_hi/143.-두-배열의-합저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)