동일한 수가 나오는 경우를 대비했는데 1등코드보니 같은수는 안나오는 것 같다.
일단 counting한 후 set에 저장한 것에서 checking하며 각 조합의 수를 answer 에 더해줬다.
import sys
input = sys.stdin.readline
from collections import defaultdict
from itertools import combinations
n = int(input())
arr = list(map(int, input().split()))
x = int(input())
check = defaultdict(int)
nums = set()
for num in arr:
check[num] += 1
nums.add(num)
answer = 0
for num in nums:
if (x - num) in check:
if 2 * num == x:
answer += len(list(combinations([i for i in range(check[num])], 2)))
continue
answer += check[num] * check[x - num]
del check[num]
del check[x - num]
print(answer)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 18186 라면 사기(Large) (0) | 2021.10.06 |
---|---|
[백준][Python] 17135 캐슬디펜스 (0) | 2021.10.06 |
[백준][Python] 17521 Byte Coin (0) | 2021.10.04 |
[백준][Python] 1660 캡틴이다솜 (0) | 2021.10.04 |
[백준][Python] 1516 게임개발 (0) | 2021.10.04 |