[李.酔.鼻.泰>序列>実戦問題]2つの配列の要素を交換する


問題の説明


東彬にはAとBの2つの配列がある.2つの配列はN個の要素からなり,配列中の要素はいずれも自然数である.東彬は最大K回の置換演算を実行することができ、置換演算とは配列Aの1つの要素と配列Bの1つの要素を選択し、2つの要素を互いに置換することを指す.東彬の最終目標は配列Aのすべての要素の和を最大にすることであり、東彬を助けなければならない.N,Kおよび配列A,Bの情報が与えられた場合、配列A内のすべての要素の最大値を出力し、最大K回の置換操作を実行するプログラムを作成します.

に近づく


最大交換k回
条件:k回以下>特定の条件を満たす場合の演算
アレイAの要素とアレイBの要素を選択し、2つの要素を交換します.
スワップ
すべての要素の和を最大にする...
最大>ソート>降順(Maximum>Sort>Descending)

に答える

n, k= map(int, input().split())

a= list(map(int, input('a의 원소입력:').split()))
b= list(map(int, input('b의 원소입력:').split()))

a.sort()
b.sort(reverse=True)

for i in range(k):
  if a[i] < b[i]:
    a[i], b[i]= b[i], a[i]
  else: 
    break

print(sum(a))

学識


複数の入力値を変換するときにmap()関数を使用する
実行回数が最大条件を満たしているかどうかを確認します