문제

  • 알파벳순으로 정렬하고, 첫 번째 값을 반환한다.
  • 반환된 값은 문자열(string)이어야 하고, 각 글자 사이에 ***가 있어야 한다.

풀이 01

function sortAndStar(arr) {
  let firstElement = arr.sort()[0];
  let result = firstElement[0];

  for (let i = 1; i < firstElement.length; i++) {
    result += '***' + firstElement[i];
  }
  return result;
}

sortAndStar(['c', 'bb', 'aaa']);     // a***a***a
sortAndStar(['ape', 'ace', 'abc']);  // a***b***c
  • sort(): 배열의 element를 정렬한 후, 그 배열을 반환한다.

풀이 02

function sortAndStar(arr) {
  return arr.sort()[0].split('').join('***');
}

sortAndStar(['c', 'bb', 'aaa']);     // a***a***a
sortAndStar(['ape', 'ace', 'abc']);  // a***b***c
  • split(): 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.
  • join(): 배열의 모든 element를 결합하고, 새 문자열로 반환한다.

풀이 03

function sortAndStar(arr) {
  return arr.sort()[0].replace(/(.)(?!$)/g, i => i + '***');
}

sortAndStar(['c', 'bb', 'aaa']);     // a***a***a
sortAndStar(['ape', 'ace', 'abc']);  // a***b***c

정규표현식 (RegExp)

  • replace(): 대응되는 문자열을 찾아 다른 문자열로 치환한다.
  • .: 개행 문자를 제외한 모든 문자와 대응
  • x(?!y): y가 뒤따라오지 않는 x에만 일치
  • $: 입력의 끝 부분에 대응
  • g: 전역 검색