[Lv 1]ポンキモン
プログラマ
https://programmers.co.kr/learn/courses/30/lessons/1845
私の答え
function solution(nums){
let cnt = (nums.length)/2; //데려갈 수 있는 동물 수
let species = 0; //데려간 종류 수
while(nums.length && cnt){
cnt--;
species++;
nums = nums.filter(el => el !== nums[0]);
}
return species;
}
他人の解答
function solution(nums){
const max = nums.length/2;
const arr = [...new Set(nums)];
return arr.length>max ? max : arr.length;
}
new Set([iterable])
Setオブジェクトは、パラメータとして入力された要素を巡回して新しいオブジェクトを作成し、重複を排除します.すなわち、ある値はセット内で一意である.ただし、同じ配列またはオブジェクトの異なる値を参照する場合は、この値を追加できます.(以下の例を参照)NaNおよびUndefindもSetに格納することができる.
重複可能なオブジェクトが渡されると、すべての要素が新しいセットに追加されます.パラメータが指定されていないかnullが渡されていない場合、新しいセットは空になります.
新しいSetオブジェクトを返します.配列にパラメータが含まれている場合は、展開構文を使用してsetをArrayに変換します.
let mySet = new Set();
//add()
mySet.add(1); // {1}
mySet.add(5); //{1,5}
mySet.add(5); //{1,5} --> 이미 존재하는 값은 추가되지 않음
mySet.add('some text'); //{1,5,'some text'}
let o = {a:1, b:2};
mySet.add(o); //{1,5,'some text',{a:1, b:2}}
mySet.add({a:1, b:2}); //{1,5,'some text',{a:1, b:2},{a:1, b:2}}
//o와 다른 객체를 참조하므로 추가 가능
//has()
mySet.has(1); //true
mySet.has(2); //false
mySet.has(Math.sqrt(25)); //true
mySet.has('SOME TEXT'.toLowerCase()); //true
mySet.has(o); //true
//.size
mySet.size; //5
//delete()
mySet.delete(5); //{1,'some text',{a:1, b:2},{a:1, b:2}}
reference
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Set
Reference
この問題について([Lv 1]ポンキモン), 我々は、より多くの情報をここで見つけました https://velog.io/@kaitlin_k/Lv1-폰켓몬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol