[파이썬 알고리즘 문제풀이] - Section3 / 탐색 & 시뮬레이션 -4

Chooooo·2023년 9월 27일
0

🎈 두 리스트 합치기

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

▣ 입력설명
첫 번째 줄에 첫 번째 리스트의 크기 N(1<=N<=100)이 주어집니다.
두 번째 줄에 N개의 리스트 원소가 오름차순으로 주어집니다.
세 번째 줄에 두 번째 리스트의 크기 M(1<=M<=100)이 주어집니다.
네 번째 줄에 M개의 리스트 원소가 오름차순으로 주어집니다.
각 리스트의 원소는 int형 변수의 크기를 넘지 않습니다.

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

import sys
# sys.stdin = open("input.text", "rt")

N = int(input())
dataA = list(map(int,input().split()))
M = int(input())
dataB = list(map(int, input().split()))

res = []
i = 0
j = 0
while i<N and j<M:
    if dataA[i] > dataB[j]:
        res.append(dataB[j])
        j += 1
    else:
        res.append(dataA[i])
        i += 1

# res = dataA + dataB
# res.sort()

if i < N:
    res += dataA[i:]
if j < M:
    res += dataB[j:]

# while N > 0:
#     res.append(dataA[i])
#     i += 1
#     N -=1 
# while M > 0:
#     res.append(dataB[j])
#     j += 1
#     M -=1

for x in res:
    print(x, end = " ")

🎃 코멘트

파이썬의 장점으로 그냥 두 리스트 + 로 합치고 sort() 메서드로 정렬해주면 끝.
근데 그러려고 푼 것은 아니니. 하나씩 확인하면서 저장 후에 슬라이싱을 통해 남아있는 것을 더해주면 끝

profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글