C

C 프로그래머스 배열 두 배 만들기

2wjddls2 2026. 5. 17. 23:20
// 프로그래머스: 배열 두 배 만들기
// numbers의 각 원소를 2배한 값으로 채운 배열을 반환
// 핵심 개념: 배열 순회, 동적 메모리 할당(malloc)

#include <stdio.h>
#include <stdlib.h>

int* solution(int numbers[], size_t numbers_len) {
    // 결과 배열 메모리 할당
    int* answer = (int*)malloc(sizeof(int) * numbers_len);

    for (int i = 0; i < numbers_len; i++) {
        answer[i] = numbers[i] * 2;     // 각 원소를 2배하여 저장
    }

    return answer;
}

// 테스트용 main 함수
int main() {
    int arr1[] = {1, 2, 3, 4, 5};
    int* r1 = solution(arr1, 5);
    for (int i = 0; i < 5; i++) printf("%d ", r1[i]); // 출력: 2 4 6 8 10
    printf("\n");

    int arr2[] = {1, 2, 100, -99, 1, 2, 3};
    int* r2 = solution(arr2, 7);
    for (int i = 0; i < 7; i++) printf("%d ", r2[i]); // 출력: 2 4 200 -198 2 4 6
    printf("\n");

    free(r1);
    free(r2);
    return 0;
}