프로그래머스 Lv.1 폰켓몬
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function solution(nums) { let answer = 0; let num_div = nums.length/2; let num_copy = nums.slice(0); for(let i = 0; i < num_copy.length; i++) { for(let j = i+1; j < num_copy.length; j++) { if(num_copy[i] === num_copy[j]) { num_copy.splice(j, 1); j--; } } } if(num_copy.length > num_div) { answer = num_div; }else { answer = num_copy.length; } return answer; } | cs |
nums
의 길이를 2로 나눈 값을num_div
에 할당하고,nums
를 복사한 배열을num_copy
에 할당한다.이중반복문을 사용하여 바깥쪽 반복문은
i
가 0부터num_copy
의 길이까지, 안쪽 반복문은j
가i+1
부터num_copy
의 길이까지 반복한다.만약
num.copy[i]
와num_copy[j]
의 값이 같다면num_copy[j]
를splice
를 사용하여 배열에서 제외하고j
를 1 감소한다.반복문 종료후 만약
num_copy
의 길이가num_div
의 값보다 크다면answer
에num_div
값을 할당한다.그렇지 않다면
answer
에num_copy
의 길이값을 할당한다.