728x90
문제
배열에 중복되지 않는 요소들의 개수를 찾는다.
조건 : 시간복잡도 O(n), 공간복잡도 O(n)
예시
countUniqueValues([1, 1, 1, 1, 1, 2]); // 2
countUniqueValues([1, 2, 3, 4, 4, 4, 7, 7, 12, 12, 13]); // 7
countUniqueValues([]); // 0
countUniqueValues([-2, -1, -1, 0, 1]); // 4
풀이
function countUniqueValues(arr) {
let i = 0;
for (let j = 1; j < arr.length; j++) {
if (arr[i] !== arr[j]) {
i++;
arr[i] = arr[j];
}
}
return i + 1;
}
728x90
'개발 > 알고리즘' 카테고리의 다른 글
[알고리즘] 문제 모음 (0) | 2022.11.02 |
---|---|
[알고리즘] 연속된 수를 더해서 가장 큰 값 찾기 (0) | 2022.11.02 |
[알고리즘] 다중 포인터 (0) | 2022.11.02 |
[알고리즘] anagram (0) | 2022.11.02 |
[알고리즘] 배열 안의 요소 비교 (0) | 2022.11.02 |