정말 간단한 방법으로 문제를 해결할 수 있었다.
import sys
N, M = map(int, sys.stdin.readline().strip().split())
A = list(map(int, sys.stdin.readline().strip().split()))
B = list(map(int, sys.stdin.readline().strip().split()))
lst = sorted(A + B)
print(*lst)
알고리즘 분류 중 하나였던 투 포인터를 보고 이를 이용해서 코드를 작성했다.
import sys
N, M = map(int, sys.stdin.readline().strip().split())
A = list(map(int, sys.stdin.readline().strip().split()))
B = list(map(int, sys.stdin.readline().strip().split()))
lst = []
p1 = p2 = 0
# 이 반복문을 모두 거쳤을 때 배열이 완전히 합해지지 않을 수도 있다.
while p1 < N and p2 < M:
if A[p1] > B[p2]:
lst.append(B[p2])
p2 += 1
else:
lst.append(A[p1])
p1 += 1
# 만약 첫 번째 배열에서 남는 원소가 발생한다면?
while p1 < N:
lst.append(A[p1])
p1 += 1
# 만약 두 번째 배열에서 남는 원소가 발생한다면?
while p2 < M:
lst.append(B[p2])
p2 += 1
print(*lst)