코팅테스트/코딩테스트 이론 정리
6-2. 정렬 문제
유지광이
2021. 8. 18. 14:09
728x90
소스코드
나의 코드
n,k = map(int,input().split())
arrayA = list(map(int,input().split()))
arrayB = list(map(int,input().split()))
arrayA.sort()
arrayB.sort(reverse=True)
for i in range(k):
if(arrayA[i] < arrayB[i]):
arrayA[i],arrayB[i] = arrayB[i],arrayA[i]
print(sum(arrayA))
-> break 문을 빼먹음
정답 코드
import builtins
n,k = map(int,input().split())
a = list(map(int,input().split()))
b = list(map(int,input().split()))
a.sort() #배열 A는 오름차순 정렬 수행
b.sort(reverse=True) #배열 B는 내림차순 정렬 수행
#첫 번째 인덱스부터 확인하며, 두 배열의 원소를 최대 k번 비교
for i in range(k):
#A의 원소가 B의 원소보다 작은 경우
if a[i] < b[i]:
#두 원소를 교체
a[i],b[i] = b[i],a[i]
else: #A의 원소가 B의 원소보다 크거나 같을 때, 반복문을 탈출
break #break 까먹지말자.(오름차순.내림차순 했으면 a[i] < b[i] 가 성립하지 않는 수간 그이후 배열의 원소 모두 성립안한다)
728x90