전공/백준
정렬 응용문제(이코테)
yha97
2022. 11. 7. 15:46
날짜 : 2022. 11. 07
사용 언어 : python
문제
코드
import sys
n, k = map(int, sys.stdin.readline().split())
a = list(map(int, sys.stdin.readline().split()))
b = list(map(int, sys.stdin.readline().split()))
a.sort()
b.sort(reverse=True)
j = 0
for i in range(n):
if a[i] > b[j]: continue
elif a[i] < b[j] :
if k == 0: break
a[i], b[j] = b[j], a[i]
j += 1
k -= 1
print(a)
print(b)
s = 0
for i in range(n):
s += a[i]
print(s)
알게된 점
- 배열 a는 오름차순, 배열 b는 내림차순으로 정렬한 후 a의 최솟값과 b의 최댓값을 비교하여 전자가 작은 경우 swap하는 방식으로 문제를 해결했다.
참고 사이트
- 문제출처 : https://youtu.be/KGyK-pNvWos