-
백준 11728번 : 배열 합치기 (C 언어)c c++ 언어 공부 2023. 6. 19. 12:08
https://www.acmicpc.net/problem/11728
11728번: 배열 합치기
첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거
www.acmicpc.net
Code:
12345678910111213141516171819202122#include <stdio.h>#include <stdlib.h>int compare(const void* a, const void* b){return (*(int*)a - *(int*)b);}int main() {int n, m;scanf("%d %d", &n, &m);int arr[2000001] = { 0, };for (int i = 0; i < n+m; i++){scanf("%d", &arr[i]);}qsort(arr, n + m, sizeof(int), compare);for (int i = 0; i < n + m; i++){printf("%d ", arr[i]);}}cs 문제풀이:
문제 설명
주어진 문제는 정렬되어 있는 두 배열 A와 B를 합친 다음 정렬하여 출력하는 것입니다.
입력
첫째 줄에 배열 A의 크기 N과 배열 B의 크기 M이 주어집니다. (1 ≤ N, M ≤ 1,000,000)
둘째 줄에는 배열 A의 내용이 주어지고, 셋째 줄에는 배열 B의 내용이 주어집니다. 배열에 들어있는 수는 절댓값이 10^9보다 작거나 같은 정수입니다.
출력
두 배열을 합친 다음 정렬하여 출력합니다.
- compare 함수를 정의하여 정렬 기준을 설정합니다. 이 함수는 qsort 함수에서 호출되며, 정렬할 두 요소를 비교하여 정렬 순서를 결정합니다.
- main 함수에서는 배열 A와 B의 크기인 n과 m을 입력받습니다.
- arr이라는 배열을 선언합니다. 배열의 크기는 두 배열의 크기의 합보다 크게 설정합니다.
- 반복문을 사용하여 배열 A와 B의 내용을 입력받고, arr 배열에 저장합니다.
- qsort 함수를 사용하여 arr 배열을 정렬합니다. qsort 함수는 배열의 시작 주소(arr), 배열의 크기(n + m), 요소의 크기(sizeof(int)), 정렬 함수(compare)를 인자로 받습니다.
- 정렬된 arr 배열을 순서대로 출력합니다.
'c c++ 언어 공부' 카테고리의 다른 글
백준 9613번 : GCD 합 (C 언어) (0) 2023.06.20 백준 2846번 : 오르막길 (C 언어) (0) 2023.06.20 백준 2083번 : 럭비 클럽 (C 언어) (0) 2023.06.19 백준 1235번 : 학생 번호 (C 언어) (0) 2023.06.16 백준 15666번 : N과 M(12) (0) 2023.06.15