N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다.
N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라.
수의 위치가 다르면 값이 같아도 다른 수이다.
import sys
input = lambda: sys.stdin.readline().strip()
n = int(input())
arr = list(map(int, input().split()))
arr.sort()
count = 0
for i in range(n):
check_arr = []
for j in range(n):
if j != i:
check_arr.append(arr[j])
start, end = 0, n - 2
while start < end:
num = check_arr[start] + check_arr[end]
if num == arr[i]:
count += 1
break
elif num > arr[i]:
end -= 1
else:
start += 1
print(count)
풀이
- 어떤 수 : 반복문을 통해 설정
- 다른 수 두 개 : 두포인터를 통해 설정