여러번 채점 결과 맞추지를 못해 블로그를 참고했다.
(1) 남자와 여자 각각 양수와 음수일 때를 각 리스트에 넣어준다.
(2) 양수일 경우 오름차순, 음수일 경우 내림차순으로 정렬
(3) 함수를 통해 쌍을 구할 것이다. 정렬된 2개의 리스트에서 순차적으로 탐색을 하고, 합이 음수일 경우 answer += 1을 한다.
비교 대상은
import sys
read = sys.stdin.readline
n = int(read())
arr = list(map(int, read().split()))
arr2 = list(map(int, read().split()))
nman = []
pman = []
nwoman = []
pwoman = []
for in_arr in arr:
if in_arr < 0:
nman.append(in_arr)
else:
pman.append(in_arr)
for in_arr in arr2:
if in_arr < 0:
nwoman.append(in_arr)
else:
pwoman.append(in_arr)
answer = 0
nman.sort(reverse=True)
pman.sort()
nwoman.sort(reverse=True)
pwoman.sort()
def calForResult(plus, minus):
j = 0
cnt = 0
for i in range(len(plus)):
while j < len(minus):
if plus[i] + minus[j] < 0:
j += 1
cnt += 1
break
else:
j += 1
if j == len(minus):
break
return cnt
answer += calForResult(pman, nwoman)
answer += calForResult(pwoman, nman)
print(answer)
참고 : https://landlordgang.tistory.com/105?category=458943