For Programmer

6-2. 정렬 문제 본문

코팅테스트/코딩테스트 이론 정리

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

'코팅테스트 > 코딩테스트 이론 정리' 카테고리의 다른 글

7-2. 이진탐색 문제  (0) 2021.08.18
7. 이진탐색  (0) 2021.08.18
6-1. 정렬(선택정렬,삽입정렬,퀵정렬,계수정렬)  (0) 2021.08.18
5-2. DFS&BFS 문제  (0) 2021.08.14
5. DFS,BFS 이론  (0) 2021.08.14
Comments