[프로그래머스] 코딩테스트 연습 - 10

krkorklo·2022년 1월 27일
0

프로그래머스

목록 보기
10/78

level 1 - 폰켓몬

당신은 최대한 다양한 종류의 폰켓몬을 가지길 원하기 때문에, 최대한 많은 종류의 폰켓몬을 포함해서 N/2마리를 선택하려 합니다. N마리 폰켓몬의 종류 번호가 담긴 배열 nums가 매개변수로 주어질 때, N/2마리의 폰켓몬을 선택하는 방법 중, 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾아, 그때의 폰켓몬 종류 번호의 개수를 return 하도록 solution 함수를 완성해주세요.

입출력 예시
nums : [3,1,2,3]
-> 2

function solution(nums) {
    var result = [];
    
    nums.forEach((n) => {
        if (result.indexOf(n) == -1) {
          result.push(n);  
        }
    })
    
    return result.length > nums.length / 2 ? nums.length / 2 : result.length;
}

이렇게 풀었

다른 풀이도 궁금해서 보니까 Set를 사용했더라
생각도
몬함

function solution(nums) {
  const max = nums.length / 2;
  const arr = [...new Set(nums)];

  return arr.length > max ? max : arr.length
}

0개의 댓글