< 문제 >
풀이
hash Map 풀이
new Set메소드를 사용했고, 문제에서 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다라고 했기때문에 총갯수를 2로 나눈 값을 length라는 변수에 담아두고 문제에서 이 length값이 최대값임을 알 수 있고, 배열의 중복을 제거해서 nH에 담고 nH의 size 즉 길이가 length보다 작을때만 nH의 크기를 return해주고, 그게 아닐경우 최대값인 length를 return 해주는 풀이.
// hash Map 풀이
function solution(nums) {
let length = nums.length / 2;
let nH = new Set();
nums.forEach(item => {
nH.add(item);
});
return length > nH.size ? nH.size : length;
}
console.log(solution([3, 1, 2, 3]));
console.log(solution([3, 3, 3, 2, 2, 4]));
// js 메소드 풀이
function solution(nums) {
let answer = [];
let length = nums.length / 2;
for (let i = 0; i < nums.length; i++) {
if (!answer.includes(nums[i])) {
answer.push(nums[i]);
}
}
return length < answer.length ? length : answer.length;
}
console.log(solution([3, 1, 2, 3]));
console.log(solution([3, 3, 3, 2, 2, 4]));