티스토리 뷰

문제

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

제한 조건

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

입출력 예

s return
"abcde" "c"
"qwer" "we"

접근

짝수면 가운데 두 개를 리턴하라고 했으니 양쪽 글자를 제거한 뒤 리턴.

index를 사용하면 더 쉬울 거 같은데 재귀함수를 연습해보고 싶었다.

구현

const solution = s => {
    // 문자열의 길이가 1이거나 2면 리턴
    if (s.length <= 2) {
        return s;
    }

    // 주어진 문자열을 배열로 변환하고 맨 앞, 맨 뒤 요소를 제거한다.
    const answer = s.split("");
    answer.shift();
    answer.pop();

    s = answer.join("");
    return solution(s);
};

인덱스를 이용한 훨씬 더 간단한풀이

const solution = s => {
    let answer = "";
    // 가운데 인덱스 
    const mid = Math.floor(s.length/2);

    answer = s.length % 2 !== 0 ? s[mid] : s[mid-1]+s[mid];
    return answer;
};
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함