우당탕탕 개발일지

[정렬] 이것이 코딩테스트다 level 1 두 배열의 원소 교체 (Python 파이썬) 본문

알고리즘

[정렬] 이것이 코딩테스트다 level 1 두 배열의 원소 교체 (Python 파이썬)

민아당긴아 2024. 5. 26. 18:50

 

💡문제 링크

 

 

💡문제 분석 요약

배열 A와 배열 B 각각의 원소 개수 n개, 바꿔치기 연산 횟수 k를 입력받는다.두 배열의 원소를 입력받는다.한 번의 연산에서는 배열 A의 원소 하나를 골라서 배열 B와 바꾼다.최대 K번의 바꿔치기 연산을 수행하여 만들 수 있는 배열 A의 모든 원소의 합의 최댓값은?

 

💡알고리즘 설계

1. 배열 A, B를 입력한다.

2. 배열 A, B 내림차순으로 정렬

3. 배열 A에서 앞에서부터 (n-k)개는 남겨두고, 수의 크기가 작은 k개의 원소는 배열 B의 가장 큰 숫자 k개와 바꾼다.

4. 합을 계산해서 출력한다.

 

💡코드

n, k = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))

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

print(sum(a[:n-k])+sum(b[:k]))

 

💡 오답 풀이

...

 

💡 다른 풀이

...

 

💡 느낀점 or 기억할정보

너무 유형에 집중하지 말고 더 간단하고 빠른 방법을 찾자!

이 문제가 '정렬' 유형이라서 문제에 적힌대로 하나씩 원소를 바꿔치기 한다고 생각할 수 있지만,

결국 최댓값은 간단하다!