반응형
Merge Sort에서 정렬된 배열을 합칠 때, 사용하는 merge 함수를 변형해서 사용하면 된다.
#include <stdio.h>
int N, M;
int a[1000100];
int b[1000100];
int main(void)
{
scanf("%d %d", &N, &M);
for (int i = 0; i < N;i++) scanf("%d", &a[i]);
for (int i = 0; i < M;i++) scanf("%d", &b[i]);
int i, j;
i = j = 0;
while (i < N && j < M)
{
/* 둘 중 작은 것을 먼저 출력 */
if (a[i] <= b[j]) printf("%d ", a[i++]);
else printf("%d ", b[j++]);
}
/* 남은 배열을 출력, 두 while 중 반드시 하나만 실행된다 */
while (i < N) printf("%d ", a[i++]);
while (j < M) printf("%d ", b[j++]);
return 0;
}
반응형
'알고리즘 > BAEKJOON' 카테고리의 다른 글
BOJ 15650 : N과 M (2) - 조합 combination (0) | 2021.02.20 |
---|---|
BOJ 15649 : N과 M (1) - 순열 permutation (0) | 2021.02.20 |
BOJ 2751 : 수 정렬하기 2 (1) | 2021.02.16 |
BOJ 14501, 15486 : 퇴사, 퇴사 2 (0) | 2021.02.15 |
BOJ 10866 : 덱 (0) | 2021.02.08 |
댓글