<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('');
}
이렇게 짜면 되는걸..
'개발공부 > 알고리즘' 카테고리의 다른 글
[Algorithm] 보이는 학생 (0) | 2023.04.26 |
---|---|
[Algorithm] 중복 단어 제거하기 (메모리 관련 이야기) (0) | 2023.04.25 |
[Algorithm] 가운대 문자 출력하기 (0) | 2023.04.24 |
[Algorithm] 가장 긴 문자열 찾기 (0) | 2023.04.23 |
[Algorithm] 대소문자 변환하기 (0) | 2023.04.23 |