나의 풀이
n, k = map(int, input().split())
sum = 0
a = list(map(int,input().split()))
b = list(map(int,input().split()))
a.sort()
b.sort(reverse = True)
for i in range(k):
    a[i] = b[i]
    
for i in range(n):
    sum += a[i]
print(sum)
정답
n, k = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().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))
정답을 본 후 나의 풀이
n, k = map(int, input().split())
sum = 0
a = list(map(int,input().split()))
b = list(map(int,input().split()))
a.sort()
b.sort(reverse = True)
for i in range(k):
    if a[i] < b[i]:
        a[i] = b[i]
    else:
        break
    
for i in range(n):
    sum += a[i]
print(sum)b의 가장 큰값이 a의 가장 작은 값보다 작을 수 있다는 가정을 빼먹고 문제를 풀었다. 정답을 본 후 그것을 빼먹었다는 것을 깨달았다.
'알고리즘' 카테고리의 다른 글
| 떡복기 떡 만들기 이진 탐색 (0) | 2021.12.20 | 
|---|---|
| 부품 찾기 (0) | 2021.12.19 | 
| 성적이 낮은 순서로 학생 출력하기 딕셔너리 형태 정렬하기 (0) | 2021.12.19 | 
| 숫자 카드 게임 그리디 (0) | 2021.12.15 | 
| 큰 수의 법칙 그리디 (0) | 2021.12.14 |