getMiddle.js (7kyu 06)

Codewars 알고리즘 풀이


Description

  • Your job is to return the middle character of the word.
    • 단어의 중간 글자를 반환한다.
  • If the word's length is odd, return the middle character.
    • 단어의 길이가 홀수인 경우 중간 글자를 반환한다.
  • If the word's length is even, return the middle 2 characters.
    • 단어의 길이가 짝수인 경우 중간 두 글자를 반환한다.



Solution 01

function getMiddle(str) {
  const middle = Math.floor(str.length / 2);
  
  if (str.length % 2 !== 0) {
    return str.slice(middle, middle + 1);
  } else {
    return str.slice(middle - 1, middle + 1);
  }
}

getMiddle('a');       // a
getMiddle('odd');     // d
getMiddle('even');    // ve
getMiddle('middle');  // dd


Solution 02

function getMiddle(str) {
  const middle = Math.ceil(str.length / 2 - 1);
  
  return str.substr(middle, str.length % 2 !== 0 ? 1 : 2);
}

getMiddle('a');       // a
getMiddle('odd');     // d
getMiddle('even');    // ve
getMiddle('middle');  // dd