[8/3] 두 배열의 원소 교체

이경준·2021년 8월 3일
0

코테

목록 보기
77/140
post-custom-banner

정렬 (182)

내 코드

n, k = map(int, input().split())

a = list(map(int, input().split()))
b = list(map(int, input().split()))

for _ in range(k):
    maxx = max(b)
    minn = min(a)
    
    a[a.index(minn)] = maxx
    b[b.index(maxx)] = minn
    
print(sum(a))

로직

  • k번, a의 최소값과 b의 최대값을 바꿈
    (무조건 바꿔서 틀린 코드)

효율적인 코드

n, k = map(int, input().split())

a = list(map(int, input().split()))
b = list(map(int, input().split()))

for _ in range(k):
    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))

피드백

  • a와 b를 정렬해서, 첫번째 인덱스부터 차례대로 비교하여 변경
  • a가 더 크면, 반복문을 종료한다.
profile
The Show Must Go On
post-custom-banner

0개의 댓글