단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요.

단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

제한사항

  • s는 길이가 1 이상, 100이하인 스트링입니다.

입출력 예

s            return

abcde      c
qwer       we

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

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해>서 사용하세요.
char* solution(const char* s) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    int len = strlen(s);
    char *answer;

    if (len % 2 == 0)
    {
        answer = (char *)malloc(3);
        answer[0] = s[(len / 2) - 1];
        answer[1] = s[(len / 2)];
        answer[2] = '\0';
    }
    else
    {
        answer = (char *)malloc(2);
        answer[0] = s[len / 2];
        answer[1] = '\0';
    }
    return (answer);
  • 풀이 :
  1. len을 구함
  2. 짝수인 경우
    • s[len / 2 - 1], str[len - 2]이 각각 가운데 문자 두 개가 됨.
    • 그 이유는 만약에 len이 4인 경우 len / 2 - 1은 1인데, 인덱스상의 1은 사실상 문자열의 두 번째 이므로.
  3. 홀수인 경우
    • s[len / 2] 가 가운데 문자가 됨.
    • 그 이유는 만약에 len이 5인 경우 len / 2는 버림 계산을 하여 2가 되는데,
    • 인덱스 상의 2는 사실상 세 번째 문자이므로.
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
// custom