PS-Algorithm/Algorithm

[프로그래머스/C언어] 가운데 글자 가져오기

su8y 2020. 12. 12. 17:28

문제 :

프로그래머스(programmers.co.kr/)

풀이방식 : 

// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.  라는 주석이 달려있다 

짝수와 홀수의 반환값이 다르니까 그에 맞게 반환값에 따른 동적할당을 하면 어떨까 싶었다 .

홀수의 경우에는 한글자를 반환하고

짝수의 경우에는 두글자를 반환한다.  ( 둘다 반환하는 크기는 단어 길이에 영향을 받지않을거라고 생각했다 ) 

까먹지 않게 마지막에는 NULL 을 넣어준다 .(NULL = \0)

<>코드

char *solution(const char *s)
{
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    char *answer;

    int length = strlen(s);//#include string.h char*s가 받는 문자의 길이
    
    if (length % 2) // 홀수라면 
    {
        answer = (char *)malloc(sizeof(char) * 2);
        answer[0] = s[length / 2];
        answer[1] = '\0';
    }
    else //짝수라면
    {
        answer = (char *)malloc(sizeof(char) * 3);
        answer[0] = s[length / 2 - 1];
        answer[1] = s[length / 2];
        answer[2] = '\0';
    }

    return answer;
}

어렵지 않은 문제지만 마지막에 NULL 문자를 까먹어서 조금 애먹었다 ..ㅜㅜ 

프로그래머스에서는 다른사람의 문제풀이를 볼수있는데 그걸 사용해고 겨우 NULL문자를 넣어서 값이 이상하게 나온걸 고칠수있었다 .

반응형