N마리 폰켓몬의 종류 번호가 담긴 배열 nums가 매개변수로 주어질 때,
N/2마리의 폰켓몬을 선택하는 방법 중, 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾아,
그때의 폰켓몬 종류 번호의 개수를 return 하도록 solution 함수를 완성하기.
// 1)서로 같지 않은 원소의 종류 개수
// 2)1)</2 종류 개수로 반환
처음에는 어떻게 폰켓몬을 선택하는 새로운 배열을 만들어야 할지 고민했다.
하지만 우선 동일한 폰켓몬이 있다는 조건을 제외하면 n/2마리를 가져가면 된다는 생각이 들었다.
또한 서로 같지 않은 원소의 개수를 어떻게 구할지 고민했다.
for을 중첩으로 쓰기도 싫었고, map을 쓰는 것을 시도해봤지만 for 중첩으로 쓰는 것과 비슷해보였다. 하기도 힘들었고.
그렇기 때문에 먼저 정렬을 하고,
같지 않은 원소의 종류 개수를 구하는 for문을 적었다.
그 결과는 아래와 같다.
function solution(nums) {
var answer = 0;
var count = 0;
nums.sort(function(a, b) {
return a - b;
});
for(let i=0; i<nums.length; i++){
(nums[i]!==nums[i+1])?count++:count
}
return (count>nums.length/2)? nums.length/2:count
return answer;
}
답안을 줄이기 위해 count를 answer로 바꾸었다.
그리고 count+1보다는 없는 n+1번째 함수와 비교해 +1이 되도록
for문을 적었다.
function solution(nums) {
var answer = 0;
nums.sort(function(a, b) {
return a - b;
});
for(let i=0; i<nums.length; i++){
(nums[i]!==nums[i+1])?answer++:answer
}
return (answer>nums.length/2)? nums.length/2:answer
}