문제는 간단합니당~ 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형 메모리가 할당됩니다!!
(。・∀・)ノ゙ 끝~
'코딩테스트' 카테고리의 다른 글
프로그래머스 - 부분 문자열 (1) | 2023.12.18 |
---|---|
프로그래머스 - 중앙값 구하기 (0) | 2023.10.05 |
프로그래머스 - 짝수의 합 (0) | 2023.08.02 |
프로그래머스 - 치킨 쿠폰 (0) | 2023.08.01 |
프로그래머스 - 양꼬치 (0) | 2023.07.31 |