2020.코딩일지

[JS][코플릿]Algorithm Basic-16_isIsogram 본문

algorithm

[JS][코플릿]Algorithm Basic-16_isIsogram

개발하는라푼젤 2022. 8. 14. 21:25
728x90

 

문자열을 입력받아 아이소그램인지 여부를 리턴해야 합니다. 아이소그램(isogram)은 각 알파벳을 한번씩만 이용해서 만든 단어나 문구를 말합니다.

 

 

입출력예시

더보기
//입출력예시
let output = isIsogram('aba');
console.log(output); // false

output = isIsogram('Dermatoglyphics');
console.log(output); // true

output = isIsogram('moOse');
console.log(output); // false

 

 

👻

if (cache[strLowered[i]]) 이게 무슨소리냔... ?

키값으로 넣어놓고 있으면 false

 

그런데 꼭 {a:true} 이렇게 쌍으로 해야하는건가?

{a:4}가능

{a:1} 가능  0은 false라는 의미가 있어서 불가능.....

값부분은 아무기능을 안하는것 같은데, false가 들어가면 에러남.. 그이유는뭘까?

function isIsogram(str) {
  if (str.length === 0) {
    return true;
  }

  let cache = {};
  let strLowered = str.toLowerCase();

  for (let i = 0; i < strLowered.length; i++) {
    if (cache[strLowered[i]]) {//키값에있다면 (이미있어서 중복되었다는거니까) false뱉고종료
      return false;
    }
    cache[strLowered[i]] = true; //키값에없다면, cache객체에 {strLowered[i]=true} 입력
  }

  return true; //중복된게없는거니까 true뱉고종료
}

 

 

Comments