[CodingTest] 두 배열의 원소 교체

정재원·2021년 8월 27일
0

문제(38분 35초~)

내 풀이

def change_arr():

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

  a.sort()
  b.sort(reverse=True)

  cng = 0
  i = 0 


  for j in range(i, n, 1):
    if a[j] < b[cng]:
      a[j], b[cng] = b[cng], a[j]
      cng += 1

      if cng >= k:
        break

      tmp = j +1
      i = tmp

  return sum(a)

change_arr()
profile
생각합니다.

1개의 댓글

comment-user-thumbnail
2021년 8월 27일

해당 영상 후반부에 python 모범답안이 나오는데 내가 작성한 답안보다 훨씬 간결해서 놀랐다. 알고리즘은 간결하게 짜기 나름인 것 같다. 모범답안을 기록으로 남겨둔다.

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

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))
답글 달기