728x90
반응형
두 배열의 원소 교체
난이도 : 下 풀이 시간 : 20분
시간 제한 : 2초 메모리 제한 : 128 MB
해답
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())
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, a, b를 각각 입력받습니다. 그리고 리스트 a는 오름차순으로, 리스트 b는 내림차순으로 정렬합니다.
for 반복문으로 만약 a[0](리스트 a 중 가장 작은 수)가 b[0](리스트 b 중 가장 큰 수)보다 작다면, 둘을 스왑해줍니다.
이와 같은 과정을 반복한 뒤, 리스트 a에 저장된 수를 모두 sum해주면 답을 구할 수 있습니다.
728x90
반응형
'알고리즘 (Python) > 이것이 코딩 테스트다 with 파이썬' 카테고리의 다른 글
[이진 탐색 알고리즘] 떡볶이 떡 만들기 - 파이썬(python) (0) | 2020.12.15 |
---|---|
[이진 탐색 알고리즘] 부품 찾기 - 파이썬(python) (0) | 2020.12.15 |
[정렬 알고리즘] 성적이 낮은 순서로 학생 출력하기 - 파이썬(python) (0) | 2020.12.14 |
[정렬 알고리즘] 위에서 아래로 - 파이썬(python) (0) | 2020.12.14 |
[BFS 알고리즘] 미로 탈출 - 파이썬(python) (0) | 2020.12.14 |