[2021-04-29] 빠진 알파벳 찾기 본문

code/Daily Side Project

[2021-04-29] 빠진 알파벳 찾기

남우p 2021. 4. 29. 18:05

 

Question : 

순서대로 진행하는 알파벳 글자 중에서 빠진 것 찾기


My Answer : 

function findMissingLetter(array){
  var alphabet = "abcdefghijklmnopqrstuvwxyz";
  var letterA = [];
  var upperCaseCheck;
  var arrayIn = [];
  if(array[0].charCodeAt(0) === array[0].toUpperCase().charCodeAt(0)){
   upperCaseCheck = true; 
  } else {
    upperCaseCheck = false;
  }
  
  for(var i = 0;i < alphabet.length;i++){
    letterA.push(alphabet[i]);
  }
  
  for(var i = 0;i < array.length;i++){
    var arrayLower = array[i].toLowerCase();
    arrayIn.push(arrayLower);
  }
  //첫단어 시작 키값
  var first = arrayIn[0];
  var arrayLength = arrayIn.length;
  var arrFirst;
  var last = arrayIn[arrayLength-1];
  var arrLast;
  for(var i = 0;i < letterA.length;i++){
    if(first === letterA[i]){
      arrFirst = i;
    }
    if(last === letterA[i]){
      arrLast = i;
    }
  }  
  var sequentialArray = letterA.slice(arrFirst,(arrLast + 1));
  var resultArray = sequentialArray;
  for(var i = (sequentialArray.length-1);i >= 0 ;i--){
    for(var j = (arrayLength-1);j >= 0;j--){
      if(sequentialArray[i] === arrayIn[j]){ 
        resultArray.splice(i,1);
      }
    }    
  }
  var resultUpperCase = [];
  var result;
  if(upperCaseCheck){
    for(var i = 0;i < resultArray.length;i++){
      resultUpperCase.push(resultArray[i].toUpperCase());
    }
    result = resultUpperCase.join(",");
  } else { 
    result = resultArray.join(",");
  }
  return result;
  
}

 

AnotherAnswer1 : 

function findMissingLetter(array)
{
   var i=array[0].charCodeAt();
   array.map(x=>  x.charCodeAt()==i?i++:i);
   return String.fromCharCode(i);
}

 

AnotherAnswer2

function findMissingLetter(array) {
  let first = array[0].charCodeAt(0)
  for (let i = 1; i < array.length; i++) {
    if (first + i !== array[i].charCodeAt(0)) {
      return String.fromCharCode(first + i)
    }
  }
  throw new Error("Invalid input")
}

 

유니코드 넘버값을 얻어서 빠진 값을 추출해주면 되는 문제입니다. 그 방법을 몰라서 array에 알파벳순서를 넣어주고 이 순서와 맞지 않는 값을 걸러내는 작업으로 진행했습니다. 비슷한 코드가 들어갔지만, 해당 방법을 몰라서 코드가 길어졌습니다. 

알고리즘을 배우는 이유를 뼈져리게 느끼는 프로젝트였습니다.

Comments