[Baekjoon] 합이 0인 네 정수 / Python, 파이썬 / 7453
2023. 1. 12. 22:16ㆍBaekjoon/Gold
728x90
반응형
https://www.acmicpc.net/problem/7453
7453번: 합이 0인 네 정수
첫째 줄에 배열의 크기 n (1 ≤ n ≤ 4000)이 주어진다. 다음 n개 줄에는 A, B, C, D에 포함되는 정수가 공백으로 구분되어져서 주어진다. 배열에 들어있는 정수의 절댓값은 최대 228이다.
www.acmicpc.net
문제 설명
더보기
문제
정수로 이루어진 크기가 같은 배열 A, B, C, D가 있다.
A[a], B[b], C[c], D[d]의 합이 0인 (a, b, c, d) 쌍의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 배열의 크기 n (1 ≤ n ≤ 4000)이 주어진다. 다음 n개 줄에는 A, B, C, D에 포함되는 정수가 공백으로 구분되어져서 주어진다. 배열에 들어있는 정수의 절댓값은 최대 228이다.
출력
합이 0이 되는 쌍의 개수를 출력한다.
예제 입력 1
6
-45 22 42 -16
-41 -27 56 30
-36 53 -37 77
-36 30 -75 -46
26 -38 -10 62
-32 -54 -6 45
예제 출력 1
5
문제 풀이
import sys
input = sys.stdin.readline
N = int(input())
A = []
B = []
C = []
D = []
for i in range(N):
a, b, c, d = map(int, input().split())
A.append(a)
B.append(b)
C.append(c)
D.append(d)
counter = {}
result = 0
for i in range(N):
for j in range(N):
sum_num = A[i] + B[j]
if sum_num in counter:
counter[sum_num] += 1
else:
counter[sum_num] = 1
for i in range(N):
for j in range(N):
sum_num = C[i] + D[j]
if -sum_num in counter:
result += counter[-sum_num]
print(result)
728x90
반응형
'Baekjoon > Gold' 카테고리의 다른 글
[Baekjoon] 철로 / Python, 파이썬 / 13334 (0) | 2023.01.12 |
---|---|
[Baekjoon] 전화번호 목록 / Python, 파이썬 / 5052 (0) | 2023.01.12 |
[Baekjoon] 보석 도둑 / Python, 파이썬 / 1202 (0) | 2023.01.12 |
[Baekjoon] 크게 만들기 / Python, 파이썬 / 2812 (0) | 2023.01.02 |
[Baekjoon] 치즈 / Python, 파이썬 / 2638 (0) | 2022.12.29 |