반응형
백준 11728번 배열 합치기
투포인터 / 파이썬
[문제]
투포인터의 '정렬되어 있는 두 리스트의 합집합' 문제
문제의 요구사항: 두 리스트의 모든 원소를 합쳐서 정렬한 결과를 계산하는 것
[과정]
- 정렬된 리스트 a,b를 입력받음
- 리스트 a에서 처리되지 않은 원소 중 가장 작은 원소를 i가 가리키도록 함
- 리스트 b에서 처리되지 않은 원소 중 가장 작은 원소를 j가 가리키도록 함
- a[i]와 b[j] 중에서 더 작은 원소를 결과 리스트에 담음
- 리스트 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 |
댓글