# n,k 배열 A, 배열 B의 정보
# 최대 k번 바꿔치기 했을 때 a의 모든 원소의 합 최댓값?
# idea
# 배열 A는 오름차순, B는 내림차순 정렬
# 배열 A와 배열 B를 주어진 n만큼 앞에서부터 변경하면 됨.
n,k=map(int,input().split())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
result=0
a=sorted(a)
b=sorted(b)
b.reverse()
# a의 원소가 b원소보다 작은 경우
for i in range(k):
if a[i]<b[i]:
a[i],b[i]=b[i],a[i] # 둘을 스왑
else: # a의 원소가 b의 원소보다 크거나 같을 때, 반복문 탈출
break
for i in a:
result+=i
print(result)
- a=list(map(int,input().split())) : 배열의 모든 원소를 입력받는 법
- a=sorted(a) 는 a.sort() / b=sorted(b) , b.reverse() 는 b=b.sort(reverse=True) 로 작성할 수 있다.
- [1,2,3,4,5][7,7,1,1,1] 같은 케이스는 a의 원소가 b의 원소보다 클 수 있다. 이에 대한 예외처리를 해주지 않음. (예외처리 조심)