알고리즘 - freeCodeCamp - Missing lettersPassed

NO PAIN, NO GAIN·2019년 11월 24일
0

algorithm

목록 보기
5/18

문제

알파벳의 정해진 범위에서 순서대로 나열된 글자 중에 빠진 글자를 찾아야한다.

예시

  • "abce" 이면 "d"가 없기 때문에 "d"를 반환한다.
  • "abcdefghjklmno"는 "i" 를 반환한다.
  • "stvwx"은 "u"를 반환한다.
  • "bcdf"는 "e"를 반환한다.
  • 빠진 글자가 없다면 "undefined"를 반환한다.
function fearNotLetter(str) {
  let alphabet = "abcdefghijklmnopqrstuvwxyz";
  if (str.length === alphabet.length) {
    return;
  }
  let prefixIndex = alphabet.indexOf(str[0]);
  let suffixIndex = alphabet.indexOf(str[str.length-1]);
  let alphabetSlice = alphabet.slice(prefixIndex, suffixIndex);
  for (let i = 0; i < alphabetSlice.length; i++) {
    if (str[i] !== alphabetSlice[i]) {
      return alphabetSlice[i];
    }
  }
}

fearNotLetter("abce");

매개변수는 범위가 랜덤으로 들어온다. 매개변수의 첫 글자와 마지막 글자가 변수 alphabet의 어떤 index를 가지고 있는지 찾는다. 찾은 인덱스를 가지고 매개변수와 같은 범위를 갖는 글자 범위를 복사한다. for문을 이용해서 stralphabetSlice를 비교해서 같은 글자가 아니면 alphabetSlicei 번째를 반환한다.

profile
갈고 닦자.

0개의 댓글