👇문제 링크👇
boj_1026
N = int(input())
A = list(map(int, input("A의 배열을 입력하세요").split()))
B = list(map(int, input("B의 배열을 입력하세요").split()))
S = 0
for i in range(N):
S += min(A)*max(B)
A.remove(min(A))
B.remove(max(B))
print(S)
문제의 조건을 보면 B는 재배열하지 말라고 적혀져 있다.
근데 python의 내장함수인 min
max
를 썼으니 재배열 한건 아닌데.. 좀 찝찝하긴 하다.
이와 관련해서 다른 분들의 풀이를 참고한 결과, A를 오름차순 정렬하고, B를 내림차순 정렬하여 같은 인덱스의 값끼리 곱하였다.
재배열하지 말라고는 했지만 재배열 안된 B에 A를 끼워맞춰서 넣는거나 A는 오름차순(또는 내림차순) B는 내림차순(또는 오름차순) 으로 하는거나 덧셈의 교환법칙에 의하면 결국 같은 결과니까 막지 않는 것 같다고 하셨다.
앞으로 열심히 기록하는게 저의 목표입니당👍