Problem Solving/Baekjoon Online Judge
[BOJ #11728] 배열 합치기
DeveloperHan
2020. 7. 18. 23:51
BOJ #11728, 배열 합치기 문제입니다.
문제의 내용 자체는 간단합니다만 입력 데이터의 크기가 크고 시간 제한이 체감되는 문제입니다. 입력으로 정렬된 두 개의 배열이 주어지면 출력으로는 두 배열을 합쳐서 정렬한 배열을 출력하면 됩니다.
여러 개의 인덱스 변수를 동시에 다루는 방법으로 해결했습니다. 코드는 다음과 같습니다.
더보기
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int N, M;
scanf("%d %d", &N, &M);
int *A = (int *)malloc(sizeof(int) * N);
int *B = (int *)malloc(sizeof(int) * M);
for (int i = 0; i < N; i++)
scanf("%d", &A[i]);
for (int i = 0; i < M; i++)
scanf("%d", &B[i]);
int idxA = 0;
int idxB = 0;
while (1) {
if (idxA == N) {
for (; idxB < M; idxB++)
printf("%d ", B[idxB]);
break;
}
else if (idxB == M) {
for (; idxA < N; idxA++)
printf("%d ", A[idxA]);
break;
}
if (A[idxA] <= B[idxB]) {
printf("%d ", A[idxA]);
idxA++;
}
else {
printf("%d ", B[idxB]);
idxB++;
}
}
free(A);
free(B);
return 0;
}