bandNameGenerator.js (7kyu 85)

Codewars 알고리즘 풀이


Problem

  • My friend wants a new band name for her band.
    • 친구가 새로운 밴드 이름을 원한다.
  • She like bands that use the formula: “The” + a noun with the first letter capitalized.
    • 친구는 아래 공식을 사용한 밴드를 좋아한다.
    • “The” + 첫 글자가 대문자인 명사


For example:

batman --> The Batman


  • However, when a noun STARTS and ENDS with the same letter, she likes to repeat the noun twice and connect them together with the first and last letter, combined into one word.
    • 하지만 명사가 같은 글자로 시작하고 끝난다면, 친구는 명사를 두 번 반복하고, 첫 번째와 마지막 글자를 연결해서 한 단어로 결합하고 싶어 한다.


For example:

tart --> Tartart


  • Complete the function that takes a noun as a string, and returns her preferred band name written as a string.
    • 밴드 이름을 반환하는 함수를 작성한다.


Solution 01

function bandNameGenerator(str) {
  if (str[0] !== str[str.length - 1]) {
    return 'The ' + str[0].toUpperCase() + str.slice(1);
  } else {
    return str[0].toUpperCase() + str.slice(1) + str.slice(1);
  }
}

bandNameGenerator('batman');  // The Batman
bandNameGenerator('tart');    // Tartart

toUpperCase(): 문자열을 대문자로 변환한다.

slice(): 문자열/배열의 일부를 추출하고, 새 문자열/배열로 반환한다.


Solution 02

function bandNameGenerator(str) {
  if (str[0] !== str.slice(-1)) {
    return 'The ' + str[0].toUpperCase() + str.slice(1);
  } else {
    return str[0].toUpperCase() + str.slice(1).repeat(2);
  }
}

bandNameGenerator('batman');  // The Batman
bandNameGenerator('tart');    // Tartart

repeat(): 지정된 수의 복사본을 가진 새 문자열을 반환한다.


Solution 03

function bandNameGenerator(str) {
  let compare = str[0] !== str.slice(-1);
  let theName = 'The ' + str[0].toUpperCase() + str.slice(1);
  let repeatName = str[0].toUpperCase() + str.slice(1).repeat(2);
  
  return compare ? theName : repeatName;
}

bandNameGenerator('batman');  // The Batman
bandNameGenerator('tart');    // Tartart


Solution 04

function bandNameGenerator(str) {
  return str[0] !== str.slice(-1) ? `The ${str[0].toUpperCase()}${str.slice(1)}` : `${str[0].toUpperCase()}${str.slice(1, -1)}${str}`;
}

bandNameGenerator('batman');  // The Batman
bandNameGenerator('tart');    // Tartart