문제설명 : 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.
num을 구분하고 Even이나 Odd를 반환하는 알고리즘 자체는 크게 고민하지 않았으나, char* 변수 선언으로 인한 동적 메모리 할당을 이해하는 것이 어려웠습니다. 자바 강의 수강중이던 내용중엔 C,C++은 이 메모리를 할당하고 해제하는것을 프로그래머가 일일히 해줘야 한다고 배웠습니다.
새로배운내용 : 변수선언시에 동적 메모리 할당을 할 수 있다.
동적할당 = 객체를 만든다.
풀이
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
char* solution(int num) {
// 리턴할 값은 메모리를 동적 할당해주세요
char* answer = (char*)malloc(sizeof(char));
// return 할 answer를 동적할당, malloc과 sizeof로 크기 결정과 할당 실행.
if(num%2==0){ // num이 짝수면 answer에 Even 입력, num이 0일때도 여기에 해당한다.
answer = "Even";
}else{ // 그외에는 Odd 입력
answer = "Odd";
}
return answer;
}
문제풀이에 도움이 된 글