728x90
반응형

2021.06.12

문제명 : 찾아라 프로그래밍 마에스터 - 폰켓몬

사용언어 : Javascript

개발 시간 : 10분

 

 

코딩테스트 연습 - 폰켓몬

당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.

programmers.co.kr

 

📋 문제 설명

주어진 폰켓몬중 N/2마리를 고를 때 선택할 수 있는 폰켓몬 종류의 최댓값을 구하는 문제입니다

주어지는 폰켓몬은 항상 짝수 개수이므로 N/2는 딱 떨어지는 수입니다

 

📢 입출력 예

nums 배열 안에 값은 각각의 폰켓몬을 의미합니다. '1'이라는 폰켓몬, '2'라는 폰켓몬 등..

예제 2를 보면, [3,3,3,2,2,4] 이므로 가져갈 수 있는 폰켓몬의 개수(N/2)는 3마리(6/2)입니다

3마리를 가져갈 수 있는 방법 중 가장 다양하게 가져가는 방법은 2,3,4라는 폰켓몬을 한 마리씩 가져가는 것입니다

따라서 3이 답입니다

 

즉,

  1. nums배열 안에 중복되는 폰켓몬들을 제거한 후
  2. 중복 제거한 배열의 개수 >= N/2 라면 답은 N/2
  3. 중복 제거한 배열의 개수  <  N/2 라면 답은 중복 제거한 배열의 개수가 되는 것입니다

 

🔑 문제 풀이

function solution(nums) {
    var answer = 0;
    var cnt = nums.length / 2;
    
    // 중복 제거
    var arr = nums.filter((element, index) => {
        return nums.indexOf(element) === index;
    });
    
    if(arr.length >= cnt){
        answer = cnt;
    }else{
        answer = arr.length;
    }
    
    return answer;
}

 

728x90
반응형

+ Recent posts