프로그래머스 Lv1. 폰켓몬

문제

찾아라 프로그래밍 마에스터
https://programmers.co.kr/learn/courses/30/lessons/1845#


접근

어려워 보이지만..

  1. 나는 (배열의 길이 / 2) 개의 포켓몬을 가져갈 수 있다.
    • n = 배열의 길이 / 2
  2. 최대한 많은 종류의 포켓몬을 가져간다.
    • 새로운 배열 = 중복된 값을 제외한 배열
    • 만약 새로운 배열의 길이가 n 이상이라면 n 종류의 포켓몬을 가져갈 수 있다.
    • 그렇지 않다면 가져갈 수 있는 종류는 새로운 배열의 길이.
  3. 답 = 그 때 종류의 수

코드

python

def solution(nums):
    n = len(nums)//2
    set_nums = set(nums)
    if len(set_nums) >= n :
        return n
    else :
        return len(set_nums)
    
    

js

function solution(nums) {
    const n = nums.length/2;
    const set_nums = Array.from(new Set(nums));
    
    return set_nums.length >= n ? n : set_nums.length;
}

좋은 웹페이지 즐겨찾기