본문 바로가기
코딩테스트 문제풀이/beakjoon

[백준] 11728 배열 합치기

by merona99 2021. 8. 13.
반응형

백준 11728번 배열 합치기

투포인터 / 파이썬

 

 

 

[문제]

 

 

투포인터의 '정렬되어 있는 두 리스트의 합집합' 문제

문제의 요구사항: 두 리스트의 모든 원소를 합쳐서 정렬한 결과를 계산하는 것

 

 

 

 

[과정]

 

  1. 정렬된 리스트 a,b를 입력받음
  2. 리스트 a에서 처리되지 않은 원소 중 가장 작은 원소를 i가 가리키도록 함
  3. 리스트 b에서 처리되지 않은 원소 중 가장 작은 원소를 j가 가리키도록 함
  4. a[i]와 b[j] 중에서 더 작은 원소를 결과 리스트에 담음
  5. 리스트 a와b에서 더 이상 처리할 원소가 없을 때 까지 2~4번의 과정을 반복

 

 

 

[소스코드]

# 배열 합치기

n, m = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
result = [0] * (n+m)
i=0
j=0
k=0

while i < n or j < m:
    if j >= m or (i < n and a[i] <= b[j]):
        result[k] = a[i]
        i += 1
    else:
        result[k] = b[j]
        j += 1
    k += 1
for i in result:
    print(i, end=' ')

 

 

 

[통과]

 

 

 

반응형

'코딩테스트 문제풀이 > beakjoon' 카테고리의 다른 글

[백준] 21921 블로그  (0) 2021.08.16
[백준] 11659 구간 합 구하기 4  (0) 2021.08.16
[백준] 1167 트리의 지름  (0) 2021.08.07
[백준] 1991 트리 순회  (0) 2021.08.07
[백준] 1967 트리의 지름  (0) 2021.08.06

댓글