728x90

- 두 개의 배열 A, B

- N개의 원소로 구성

- 최대 K 번 바꿔치기 연산 수행

- 배열 A의 모든 원소의 합이 최대가 되도록

 

n, k = map(int, input().split()) 
a = list(map(int, input().split())) # 배열 A
b = list(map(int, input().split())) # 배열 B

a.sort() # 배열 A는 오름차순 정렬
b.sort(reverse=True) # 배열 B는 내림차순 정렬

# 첫 번째 인덱스부터 확인하며, 두 배열의 원소를 최대 K번 비교
for i in range(k):
    # A의 원소가 B의 원소보다 작은 경우
    if a[i] < b[i]:
        # 두 원소 교체
        a[i], b[i] = b[i], a[i]
    else: # A의 원소가 B의 원소보다 크거나 같으면 종료
        break

print(sum(a))

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기