문제
오름차순으로 정렬이 된 두 리스트가 주어지면 두 리스트를 오름차순으로 합쳐 출력하는 프로그램을 작성하세요.
입력
첫 번째 줄에 첫 번째 리스트의 크기 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=" ")
'Python > 알고리즘' 카테고리의 다른 글
[Python/알고리즘] 격자판 최대합 (0) | 2022.10.25 |
---|---|
[Python/알고리즘] 수들의 합 (0) | 2022.10.25 |
[Python/알고리즘] 카드 역배치 (0) | 2022.10.24 |
[Python/알고리즘] 숫자만 추출 (0) | 2022.10.24 |
[Python/알고리즘] 회문 문자열 검사 (0) | 2022.10.24 |
댓글