[ BOJ 11728 ] 배열 합치기(Python)
문제
https://www.acmicpc.net/problem/11728
정렬된 두 배열을 합치면 된다.
나는 쩜,, 인덱스에 약한 듯하다.
문제 풀이
0. 입력 받기
n, m = map(int, input().rsplit())
a = list(map(int, input().rsplit()))
b = list(map(int, input().rsplit()))
1. 포인터를 이동시키면서 최대한 합치기
- l은 a 배열을 가리키는 인덱스, r은 b 배열을 가리키는 인덱스다.
l, r = 0, 0
result = []
while l < n and r < m:
if a[l] < b[r]:
result.append(a[l])
l += 1
else:
result.append(b[r])
r += 1
2. 남은 배열 합치기
- a 배열과 b 배열의 길이가 같지 않으면 1번의 과정이 끝난 뒤 남는 배열이 생길 수 있다.
while l < n:
result.append(a[l])
l += 1
while r < m:
result.append(b[r])
r += 1
코드
import sys
input = sys.stdin.readline
n, m = map(int, input().rsplit())
a = list(map(int, input().rsplit()))
b = list(map(int, input().rsplit()))
l, r = 0, 0
result = []
while l < n and r < m:
if a[l] < b[r]:
result.append(a[l])
l += 1
else:
result.append(b[r])
r += 1
while l < n:
result.append(a[l])
l += 1
while r < m:
result.append(b[r])
r += 1
print(" ".join(map(str, result)))
Author And Source
이 문제에 관하여([ BOJ 11728 ] 배열 합치기(Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@uoayop/BOJ-11728-배열-합치기Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)