A는 오름차순, B는 내림차순 정렬해서 계산하면 된다.
B는 바꾸면 안된다고 했지만 어쨌든 S의 최솟값을 구하는 문제니까
물론 이런 야매 방식 없이 푸는 분의 해설을 보았는데, A에서 최대값과 B에서 최소값(또는 A에서 최소값과 B에서 최대값)을 골라 곱하기 연산 후 result변수에 더한 다음 두 수를 없애버리는 방법이 있다(진짜 천재신듯)
s += min(a_list) * max(b_list)
a_list.pop(a_list.index(min(a_list)))
b_list.pop(b_list.index(max(b_list)))
출처: https://yoonsang-it.tistory.com/44
import sys
S = int(sys.stdin.readline())
A= list(map(int, sys.stdin.readline().split()))
A.sort()
B= list(map(int, sys.stdin.readline().split()))
B.sort(reverse=True) #내림차순 정렬
# list.sort(reverse=True)는 내림차순 정렬이다.
result = 0
for num1, num2 in zip(A, B): #zip 사용하여 두 개 리스트 반복
result += num1*num2
print(result)
야매로 풀긴 했는데 어찌됐든 맞음 ㅅㄱ