최대 1 분 소요


배열 합치기

시간 제한 메모리 제한 정답 비율
1.5초 256MB 44.822%

문제

정렬되어있는 두 배열 A와 B가 주어진다. 두 배열을 합친 다음 정렬해서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000)

둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거나 같은 정수이다.

출력

첫째 줄에 두 배열을 합친 후 정렬한 결과를 출력한다.

예제 입력1

2 2
3 5
2 9

예제 출력1

2 3 5 9

예제 입력2

4 3
2 3 5 9
1 4 7

예제 출력2

1 2 3 4 5 7 9

문제 풀이

알고리즘 분류

  • sorting, two pointer(LinkedList)


풀이 전 설계

우선 파이썬으로 이 문제를 풀었을 때 굉장히 쉽게 풀립니다. 파이썬의 리스트 특성상 최대 크기를 지정해 주지 않아도 되기 때문에 사실상 처음에 입력 받아야 하는 배열의 크기가 쓸모가 없습니다.

따라서 두 리스트를 입력받고 더한 후 내장 함수인 sort()로 정렬을 해 줍니다.

전체 코드

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

x = list(map(int,input().split()))

y = list(map(int,input().split()))

z = x + y
z.sort()

for i in z:
    print(i, end = ' ')


댓글남기기