이것이 취업을 위한 코딩 테스트다. 정렬 [두 배열의 원소 교체]
이것이 취업을 위한 코딩 테스트다. 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 배열이 더 이상 크지 않다면 반복문을 탈출한다.
Author And Source
이 문제에 관하여(이것이 취업을 위한 코딩 테스트다. 정렬 [두 배열의 원소 교체]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@goshk95/이것이-취업을-위한-코딩-테스트다.-정렬-두-배열의-원소-교체저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)