💻 입력 조건
💻 출력 조건
💻 입력 예시
5 3
1 2 5 4 3
5 5 6 6 5
💻 출력 예시
26
📖 문제 해결
파이썬 리스트의 내장함수 sort()
를 이용하며 배열 a는 오름차순으로, 배열 b는 내림차순으로 우선 정렬하였습니다. 그 후 차례대로 k번째 원소까지만 확인하며 b의 원소가 더 큰 경우(a[i] < b[i]
)에 a의 원소를 b의 원소로 바꿔주는(a[i] = b[i]
)과정을 코드로 구현함으로써 문제를 해결하였습니다.
# n, k 입력받기
n, k = list(map(int, input().split()))
# 배열 a와 배열 b를 입력받기
a = list(map(int, input().split()))
b = list(map(int, input().split()))
# a는 오름차순으로, b는 내림차순으로 정렬
a.sort()
b.sort(reverse = True)
# 최대 k번 교체할 수 있으므로 k번째(인덱스로는 k-1) 원소까지만 확인
for i in range(k):
# a[i]와 b[i]를 비교하였을 때, b[i]가 더 크다면 a[i]값을 b[i]값으로 바꾸기
if a[i] < b[i]:
a[i] = b[i]
# 만약 b[i]가 a[i]와 같거나 더 작은 순간이 생긴다면, 그 뒤에도 마찬가지일 것이므로 반복문 멈추기
else:
break
# 배열 a의 모든 원소의 합을 출력
print(sum(a))