이것이 취업을 위한 코딩 테스트다. with 파이썬 - 나동빈
Java
public class SwapElementsInTwoArrays {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int K = scanner.nextInt();
Integer[] arrA = new Integer[N];
for(int i = 0; i < N; i++) {
arrA[i] = scanner.nextInt();
}
Integer[] arrB = new Integer[N];
for(int i = 0; i < N; i++) {
arrB[i] = scanner.nextInt();
}
Arrays.sort(arrA);
Arrays.sort(arrB, Collections.reverseOrder());
for(int i = 0; i < K; i++) {
if(arrA[i] < arrB[i]) {
int temp = arrA[i];
arrA[i] = arrB[i];
arrB[i] = temp;
} else {
break;
}
}
System.out.println(Arrays.stream(arrA).mapToInt(a -> a.intValue()).sum());
}
}
Python
N, K = map(int, input().split())
listA = map(int, input().split())
listB = map(int, input().split())
listA = sorted(listA)
listB = sorted(listB, reverse=True)
for i in range(K):
if listA[i] < listB[i]:
listA[i], listB[i] = listB[i], listA[i]
else:
break
print(sum(listA))
두개의 배열을 생성하여 A 배열은 오름차, B 배열은 내림차 정렬 해준다.
반복문을 돌면서 A 배열 원소보다 B 배열의 원소가 클 때만 바꿔치기 해준다. A 배열 보다 B 배열이 더 이상 크지 않다면 반복문을 탈출한다.