본문 바로가기
Python/알고리즘

[Python/알고리즘] 두 리스트 합치기

by 기록하는_사람 2022. 10. 24.

문제

오름차순으로 정렬이 된 두 리스트가 주어지면 두 리스트를 오름차순으로 합쳐 출력하는 프로그램을 작성하세요.

 

입력

첫 번째 줄에 첫 번째 리스트의 크기 N(1<=N<=100)이 주어집니다.

두 번째 줄에 N개의 리스트 원소가 오름차순으로 주어집니다.

세 번째 줄에 두 번째 리스트의 크기 M(1<=M<=100)이 주어집니다.

네 번째 줄에 M개의 리스트 원소가 오름차순으로 주어집니다.

각 리스트의 원소는 int형 변수의 크기를 넘지 않습니다.

3
1 3 5
5
2 3 6 7 9

 

출력

오름차순으로 정렬된 리스트를 출력합니다.

1 2 3 3 5 6 7 9

 

N = int(input())
li_n = list(map(int, input().split()))
M = int(input())
li_m = list(map(int, input().split()))

li = li_n + li_m
li.sort()

for i in li:
    print(i, end=" ")

📄 다른 풀이

N = int(input())
li_n = list(map(int, input().split()))
M = int(input())
li_m = list(map(int, input().split()))

n1 = m1 = 0
li = []

while n1 < N and m1 < M:
    if li_n[n1] <= li_m[m1]:
        li.append(li_n[n1])
        n1 += 1
    else:
        li.append(li_m[m1])
        m1 += 1

if n1 < N:
    li = li + li_n[n1:]
if m1 < M:
    li = li + li_m[m1:]

for i in li:
    print(i, end=" ")

댓글