두 리스트 합치기
오름차순으로 정렬이 된 두 리스트가 주어지면 두 리스트를 오름차순으로 합쳐 출력하는 프로
그램을 작성하세요.
▣ 입력설명
첫 번째 줄에 첫 번째 리스트의 크기 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
나의 풀이
import sys
sys.stdin=open("input.txt", "r")
N = int(input())
M = list(map(int, input().split()))
print(M)
K = int(input())
L = list(map(int, input().split()))
print(L)
C = M + L
C.sort()
print(C)
for x in C:
print(x, end=' ')
강사풀이
import sys
sys.stdin=open("input.txt", "r")
N = int(input())
a = list(map(int, input().split()))
M = int(input())
b = list(map(int, input().split()))
p1=p2=0
c=[]
while p1<N and p2<M: #두 조건이 만족한다면 아직 리스트 안에 인덱스가 존재
if a[p1]<=b[p2]:
c.append(a[p1])
p1 +=1
else:
c.append(b[p2])
p2 +=1
if p1<N:
c=c +a[p1:] #위의 두 조건 중 1개를 만족시키 못했을 때 남아 있는 리스트가 어떤 것인지 판단한다.
elif p2<N:
c=c +b[p2:]
print(c)
'파이썬 알고리즘 > 파이썬 탐색 & 시물레이션' 카테고리의 다른 글
5. 수들의 합 (0) | 2022.11.04 |
---|---|
9. 봉우리 (0) | 2022.11.02 |
8. 모래시계 (0) | 2022.11.02 |
7. 사과나무 (0) | 2022.11.02 |
6. 격자판 최대합 (0) | 2022.11.02 |