Input/Output
Input | Output |
1,1,2 | 2 |
0,0,1,1,2,2,3,3,4 | 5 |
1차시도(성공)
성공이긴 했지만, 이중 for문을 썼더니 너무 런타임이 오래 걸렸다.
2차시도에는 다른 사람들이 푼걸로 숙지했다.
var removeDuplicates = function(nums) {
for(let i=nums.length-1;i>0;i--){
for(let j=i-1;j>=0;j--){
if(nums[i]===nums[j]){
nums.splice(j,1);
}
}
}
};
2차시도
비교값이 같으면 중지하고 반복문의 처음으로 이동.
다르면 k값을 증가시키고 다른값을 복사, 값을 바꾸는 이유는 k값이 다음 비교를 위한 기준값이기 때문.
var removeDuplicates = function(nums) {
let k=0;
for(let i=0;i<nums.length;i++){
if(nums[k]===nums[i]){
continue;
}
else {
k++;
nums[k]=nums[i];
}
}
return k+1;
};
728x90
'프로그램 강좌' 카테고리의 다른 글
[프로그래머스]타겟 넘버 - javascript (0) | 2021.12.01 |
---|---|
Visual Studio 2019 설치 방법 (0) | 2021.11.30 |
[LeetCode]20. Valid Parentheses (0) | 2021.11.22 |
[LeetCode]14. Longest Common Prefix - javascript (0) | 2021.11.20 |
[LeetCode] 13. Roman to Integer - javascript (0) | 2021.11.19 |