기록하고 까먹지 말기

정렬 응용문제(이코테) 본문

전공/백준

정렬 응용문제(이코테)

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

 

'전공 > 백준' 카테고리의 다른 글

10825  (0) 2022.11.08
2309  (0) 2022.11.08
14651  (0) 2022.11.07
14650  (0) 2022.11.06
14659  (0) 2022.11.06