코테 리뷰까지 올리면서 알고리즘 2개씩 올리기... 짜릿하다. ^^
이 문제도 별로 어렵지 않게 풀었다!
import sys
N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().strip().split()))
B = list(map(int, sys.stdin.readline().strip().split()))
A.sort()
B.sort(reverse=True)
sum=0
for i, j in zip(A, B):
sum+= i*j
print(sum)
요즘 코드를 간결하게 짜보자! 에 맛이 들렸다. 진작 그랬어야지
그래서 최대한 짧게 써보자!!! 라는 생각으로 코드를 짜는 듯 하다.
import sys
N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().strip().split()))
B = list(map(int, sys.stdin.readline().strip().split()))
각 숫자 리스트들을 A와 B로 받아준다.
A.sort()
B.sort(reverse=True)
sum=0
for i, j in zip(A, B):
sum+= i*j
print(sum)
근데 지금 보니까 이렇게 푸는 게 맞나...? 싶다. 왜냐하면 문제에서는 A는 재배열하지 말라고 했기 때문... 일단은 이 풀이대로 설명하고 나중에 한 번 더 풀어봐야겠다.
A는 오름차순으로, B는 내림차순으로 정렬해서 이를 각각 곱하면 최솟값이 나오게 된다!
일단 이 문제는 다음 번에 다시 풀 때까지 다른 풀이는 보류...