본문 바로가기
Problem Solving/Baekjoon Online Judge

[BOJ #11728] 배열 합치기

by DeveloperHan 2020. 7. 18.

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;
}

'Problem Solving > Baekjoon Online Judge' 카테고리의 다른 글

[BOJ #13417] 카드 문자열  (0) 2020.07.25
[BOJ #11659] 구간 합 구하기 4  (0) 2020.07.19
[BOJ #2231] 분해합  (0) 2020.07.15
[BOJ #1252] 이진수 덧셈  (0) 2020.07.14
[BOJ #2447] 별 찍기 - 10  (0) 2020.07.14

댓글