Programmers

[프로그래머스][JS] 폰켓몬

winter17 2023. 7. 15. 20:28

https://school.programmers.co.kr/learn/courses/30/lessons/1845

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이 과정

function solution(nums) {
    const set = new Set(nums)
    const len = nums.length / 2
    if (len <= set.size){
        return len
    }else {
        return set.size
    }
}

nums 배열 길이의 절반만 뽑을 수 있는데 그 뽑은 수 중에 중복된 수가 없어야 한다

set 객체를 사용하여 중복을 제거하고 len 메서드로 nums의 길이를 세어 

set 객체의 크기(size)가 len보다 크거나 같다면 len을 반환하고

그렇지 않다면 set.size를 반환한다

 


리뷰

해시 알고리즘이 뭔지 모르겠지만 문제를 너무 장황하게 설명해서 어려워 보이는 데

'중복하지 않은 수로 nums.length의 절반 크기만큼 뽑아라'라는 문제라서 이해하면 쉽게 풀 수 있다