코딩테스트

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

오쟝 2023. 8. 24. 22:18

문제는 간단합니당~ numbers의 각 숫자들을 두 배해 같은 인덱스에 있는 answer에 넣어주면 됩니다!

문제는 malloc! 바로 동적할당!! 입니다.

 

#include <stdio.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;
    }
    return answer;
}

 


보통 배열을 만들 때는 

int answer[] = {1, 2, 3, 4, 5}; 또는

int answer[5]; 와 같이 만드는 순간 배열의 메모리를 할당해줍니다!

그럼 malloc이 뭐냐? 하면 프로그램 중에 동적으로 메모리를 할당할 수 있는 함수입니다!

 

우리는 numbers_len의 길이만큼의 int 메모리가 필요합니다! 

따라서 malloc 안에 (sizeof(int) * numbers_len)을 해주면 numbers_len만큼의 int형 메모리가 할당됩니다!!

 

(。・∀・)ノ゙ 끝~