오름차순으로 정렬이 된 두 리스트가 주어지면 두 리스트를 오름차순으로 합쳐 출력하는 프로 그램을 작성하세요.
▣ 입력설명
첫 번째 줄에 첫 번째 리스트의 크기 N(1<=N<=100)이 주어집니다. 두 번째 줄에 N개의 리스트 원소가 오름차순으로 주어집니다.
세 번째 줄에 두 번째 리스트의 크기 M(1<=M<=100)이 주어집니다. 네 번째 줄에 M개의 리스트 원소가 오름차순으로 주어집니다.
각 리스트의 원소는 int형 변수의 크기를 넘지 않습니다.
▣ 출력설명
오름차순으로 정렬된 리스트를 출력합니다.
▣ 입력예제 1
3
1 3 5
5
2 3 6 7 9
▣ 출력예제 1
1 2 3 3 5 6 7 9
# sort 를 사용하면 시간이 많이 걸린다(N log N), 두개의 리스트가 이미 정렬된 상태이므로
# 이점을 유의하여 아래처럼 처리할것.
n1 = int(input())
a = list(map(int, input().split()))
n2 = int(input())
b = list(map(int, input().split()))
acnt = 0
bcnt = 0
c = []
while acnt < n1 and bcnt < n2:
if a[acnt] <= b[bcnt]:
c.append(a[acnt])
acnt += 1
else:
c.append(b[bcnt])
bcnt += 1
# 2개의 리스트중에서 남은 부분은 아래 로직으로 처리
if acnt < n1:
c = c+a[acnt:]
else:
c = c+b[bcnt:]
print(*c)
'Algorithm > Python' 카테고리의 다른 글
016 - 격자판 최대합 (0) | 2023.08.07 |
---|---|
015 - 수들의 합 (0) | 2023.08.04 |
013 - 카드 역배치 (0) | 2023.08.03 |
012 - 숫자만 추출 (0) | 2023.08.03 |
011 - 회문 문자열 검사 (0) | 2023.08.03 |