알고리즘

anagram - 애너그램

hello-world 2023. 3. 5. 02:25
728x90
반응형

anagram - 애너그램

어떠한 단어의 문자를 재배열하여 다른 뜻을 가지는 다른 단어로 바꾸는 것을 말한다. 

function validAnagram(first, second) {
  if (first.length !== second.length) {
    return false;
  }

  const lookup = {};

  for (let i = 0; i < first.length; i++) {
    let letter = first[i];
    //lookup[letter] 이미 존재하면 갯수를 +1 해준다. 즉 중복개수 체크 
    lookup[letter] ? lookup[letter] += 1 : lookup[letter] = 1;
  }
  console.log(lookup) //{ a: 3, n: 1, g: 1, r: 1, m: 1, s: 1 }

  for (let i = 0; i < second.length; i++) {
    let letter = second[i];
    if (!lookup[letter]) {
      return false;
    } else {
      lookup[letter] -= 1;
    }
  }

  return true;
}

// {a: 0, n: 0, g: 0, r: 0, m: 0,s:1}
validAnagram('anagrams', 'nagaramm')

 

 

 

728x90
반응형