[Programmers] 짝수와 홀수 - JS

지냐킴·2022년 7월 15일
0

코딩테스트

목록 보기
23/28
post-thumbnail

✅ 문제 설명

정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.

  • 제한 조건
    num은 int 범위의 정수입니다.
    0은 짝수입니다.
  • 기본코드
function solution(num) {
    var answer = '';
    return answer;
}

문제링크

✅ 내 문제풀이

웹종합 강의에서도 나왔던 예제로 금방 풀 수 있는 문제였지만 programmers를 처음 사용해서, 파이썬에 익숙해져있다가 갑자기 자바스크립트를 써야해서 처음에 삽질을 많이했다.
문제는 if/else 구문으로 num 을 %2로 나눠서 나머지가 0이면 "Even" 아니면 "Odd"로 출력된다

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

char* solution(int num) {                       #function 함수명(매개변수들..){
    // 리턴할 값은 메모리를 동적 할당해주세요
    char* answer = (char*)malloc(sizeof(char));
    if (num%2 == 0)                             # 이 함수에서 실행할 코드들 
        answer = "Even";
    else 
        answer = "Odd";

    return answer;                              # return 변환 값
}

동적할당?

동적 할당(Dynamic Allocation)이란 프로그램을 작성할 때(Compile Time 또는 Design Time) 메모리 필요량을 지정하는 정적 할당과는 달리 실행중에(Run Time) 필요한만큼 메모리를 할당하는 기법이다.

메모리 할당?

메모리 관리지에게 필요한 바이트만큼 달라고 요청 후 관리자는 연속된 메모리를 찾아서 변환한다(메모리주소형태 : 포인터로 저장가능)

malloc()

void* malloc(size_t size);

size 바이트 만큼의 메모리를 반환해줌

초기화 안해준다 (처음 들어있는 값은 쓰레기값)

메모리가 없거나 실패하면 NULL반환

반드시 free()와 함께 사용!!!

#include <stdlib.h>

size_t i;
int* nums = malloc(10 * sizeof(int));		// 10 * 4 : 40byte할당 해주세요
for (i = 0; i < 10; i++){
    nums[i] = i * 10;
}

free(nums)									// 다 사용했으니 해제해주세요

✨ TIL

첫 코딩테스트 문제였다. 쉬운 문제이기도 했지만 머리로는 어떻게 풀지 알겠는데 막상 빈 화면에 코드를 쓰려고 하면 막막하다. 구글링하고 따라써보고 하는 수 밖에 없는거 같다
구글링 해보니 이 문제는 삼항연산자로 풀 수도 있다.
+개삽질했습니다 프로그래머스 사이트에서 자바스크립트 언어로 바꿔야하는데 기본 설정인 C언어로 두고 하려니 주어진 기본 코드에 할당뭐시기가 나온거였음..하

삼항연산자란?

조건부 삼항 연산자는 JavaScript에서 세 개의 피연산자를 취할 수 있는 유일한 연산자로, 보통 if 명령문의 단축 형태로 쓰인다

condition ? exprIfTrue : exprIfFalse
// 삼항연산자를 이용한 풀이
function solution(num) {
    return (num % 2 === 0? "Even":"Odd")
}
// num을 2로 나눈 나머지가 0이면(true) Even을 반환하고, 그렇지 않으면(false) Odd를 반환해라.

오 더 간단한 코드가 되었다.

  • 삽질의 끝
    자바스크립트 언어
function solution(num) {
    var answer = '';
    if (num%2 === 0){
        return answer = "Even";
    } else {
        return answer = "Odd";
    }
        
    return answer;
}
profile
코린이일기

0개의 댓글

관련 채용 정보