TwoPointer_00_배열합치기(11728)

Eugenius1st·2022년 5월 1일
0

Algorithm_Baekjoon

목록 보기
76/158

TwoPointer00배열합치기(11728)

문제

정렬되어있는 두 배열 A와 B가 주어진다. 두 배열을 합친 다음 정렬해서 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000)

둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거나 같은 정수이다.

출력

첫째 줄에 두 배열을 합친 후 정렬한 결과를 출력한다.

풀이

  • 각각 0으로 초기화
  • a와 b 비교하여 큰 값 누적
  • a 와 b 둘중 하나가 모두 누적되었을 경우, 이어서 배열 붙여줌

코드

import sys
sys.stdin = open ("input.txt", "rt")
input = sys.stdin.readline

n,m=map(int,input().split())
A=list(map(int,input().split()))
B=list(map(int,input().split()))

ans=[]

a=0
b=0
while a!=len(A) or b!=len(B):
    if a==len(A): 
        ans.append(B[b])
        b+=1
    elif b==len(B):
        ans.append(A[a])
        a+=1
    else:
        if A[a]<B[b]:
            ans.append(A[a])
            a+=1
        else:
            ans.append(B[b])
            b+=1

print(*ans)

배운 것

코멘트

profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글