[JS 알고리즘 문제] #2 Isograms

By @cheonmr3/24/2018kr-dev


[문제]

“isogram”은 동일한 문자가 없는 단어를 말한다.

오직 문자만을 포함하는 문자열이 “isogram” 인지 아닌지를 결정하는 프로그램을 작성하라.

단, 대/문자는 무시하고, 빈 문자열(empty string)은 “isogram”이다.


function isIsogram(str){
    // your code
}


[예제]

isIsogram( "Dermatoglyphics" ) == true
isIsogram( "aba" ) == false
isIsogram( "moOse" ) == false // -- ignore letter case


[알고리즘]

* 빈 문자열이면, true를 리턴하라.

* 빈 문자열이 아니라면, for문을 돌려, 인풋 str의 각 문자를 소문자로 만든다.(대/소문자가 같은 것이기 때문에, 모든 문자를 소문자로 통일한다.)

* 빈 배열을 선언하고, for문에서의 각 문자가 배열에 포함되어 있지 않으면, 배열에 추가시킨다.

* for문후에, 배열 요소의 수와 인풋 str의 문자의 수가 같으면, true를 리턴하라.(수가 같다는 것은 인풋 str안에  동일한 문자가 없다는 것을 의미한다.)

* 그렇지 않으면, false를 리턴하라.


[Solution]

function isIsogram(str){
 var arr = [];
 if(str === "") {
     return true;
      } else {
         for(var i = 0; i < str.length; i++) {
         var letter = str.charAt(i).toLowerCase();
         if(!arr.includes(letter)) {
         arr.push(letter);
          }
        }     
      }
 if(arr.length === str.length) {
     return true;
      } else {
     return false;
      }
}





5

comments