배열 A, B가 있을 때
각 배열의 원소를 한개씩 최대 k번 교환 가능.
배열 A의 원소의 합이 최대가 되어야 함.
-> 오류 발견! 수정해보자
n, k = map(int, input().split()) #n, k 입력
#두 줄의 배열을 list 형태로 입력 받음
num = [list(map(int, input().split())) for _ in range(2)]
#최대 k번 교환 가능할 때:
for i in range(k):
num[0].append(max(num[1])) #배열 B의 가장 큰 수를 배열 A에 추가
num[1].append(min(num[0])) #배열 A의 가장 작은 수를 배열 B에 추가
num[0].remove(min(num[0])) #배열 A의 가장 작은 수를 제거
num[1].remove(max(num[1])) #배열 B의 가장 큰 수를 제거
print(sum(num[0])) #배열 A의 원소의 합을 출력
n, k = map(int, input().split()) #n, k 입력
#두 줄의 배열을 list 형태로 입력 받음
num = [list(map(int, input().split())) for _ in range(2)]
list_a = num[0] #배열 A
list_b = num[1] #배열 B
#최대 k번 교환 가능할 때:
for i in range(k):
#배열 A의 가장 작은 수가 배열 B의 가장 큰 수보다 작을 때
if min(list_a) < max(list_b):
#배열 A의 가장 작은 수와 배열 B의 가장 큰 수 교환
min(list_a), max(list_b) = max(list_b), min(list_a)
else:
break
print(sum(list_a)) #배열 A의 모든 원소의 합을 출력
: 배열 A의 가장 작은 수가 배열 B의 가장 큰 수보다 작지 않을 때를 대비해서 if문 삽입
: a, b = b, a
로 하면 간단하게 두 수의 자리를 바꿀 수 있는데..왜 이걸 깜빡 했을 까!