<html>

<head>
  <meta charset="UTF-8">
  <title>출력결과</title>
</head>

<body>
  <script>
    function solution(str) {
      let arr = str.split('');
      let set = new Set();
      arr.forEach(e => {
        if (!set.has(e)) {
          set.add(e);
        }
      })
      return Array.from(set).join('');
    }

    function solution2(str) {
      const obj = {};
      let result = '';

      for (let i = 0; i < str.length; i++) {
        const char = str[i];
        if (!obj[char]) {
          obj[char] = true;
          result += char;
        }
      }

      return result;
    }


    console.log(solution("apple"));
    console.log(solution("banana"));
    console.log(solution("asdasd"));
    console.log('----------------------')
    console.log(solution2("apple"));
    console.log(solution2("banana"));
    console.log(solution2("asdasd"));
  </script>
</body>

</html>

중복 제거를 위해 사용한다면 . 성능은 2번이 더 좋습니다.

timeEnd 사용시 평균적으로 성능은 2번이 더 좋습니다.

1번은  중복이 적은 경우입니다 중복이 적을때 좋은 중복제거 알고리즘..?

내가 이상한걸 만들어버린 것 같다.. 언제 쓰는걸까

중복이 발생하지 않는다는 가정이나, 중복이 발생하는 경우의 수가 매우 적은 경우에 사용하는걸까..?

 


생각해보니.. 1번 알고리즘

    function solution(str) {
      let arr = str.split('');
      let set = new Set(arr);
      return Array.from(set).join('');
    }​

이렇게 짜면 되는걸..

+ Recent posts