시간 1.5초, 메모리 256MB
input :
output :
사실 그냥 두 배열 리스트컴프리헨션이나, append 하고 정렬 시키면 되긴 하는데.
문제에선 병합 정렬의 merge메소드를 통해서 정렬 하길 원하는 것 같고. 이것이 시간 복잡도는..
위에 거랑 비슷할 거 같음.
반복이 계속 끝 날 경우 : 두 배열 중 하나라도 idx가 len(배열)이 된 경우.
while A_idx < len(A) and B_idx < len(B):
그 때에 아직 까지 len(배열)이 되지 않은 배열을 슬라이싱 해서 정답 리스트에 붙인다.
if A_idx == len(A):
answer = answer + B[B_idx:]
else:
answer += A[A_idx:]
정답코드 :
N, M = map(int, input().split())
A = list(map(int, input().split()))
B = list(map(int, input().split()))
A_idx = 0
B_idx = 0
answer = []
while A_idx < len(A) and B_idx < len(B):
if A[A_idx] < B[B_idx]:
answer.append(A[A_idx])
A_idx += 1
elif A[A_idx] > B[B_idx]:
answer.append(B[B_idx])
B_idx += 1
else:
answer.append(A[A_idx])
answer.append(A[A_idx])
A_idx += 1
B_idx += 1
if A_idx == len(A):
answer = answer + B[B_idx:]
else:
answer += A[A_idx:]
for number in answer:
print(number, end=" ")
pypy3 으로 제출 하는게 맞는 거 같다.
너무 느림....