프로그래머스 - 폰켓몬(해쉬)

level 1

프로그래머스 프론트엔드 데브코스 3차 등록이 곧 다가와서 이제부터는 코딩테스트만 준비해보기로했다.

문제

image.png

image.png

지문이 워낙 길어서 좀 이해하기가 어려웠다.. 하지만 요지는 입출력 예시 테이블로 다소 빠르게 파악 할 수 있었다.
우선, 주어진 이등분한 뒤 그 숫자(a)랑 배열에서 중복된 숫자들을 제거한 뒤 길이(b)랑 비교를 하면 되는 것이다.

따라서, a<b라면 a를 리턴, 아닌 경우라면 b를 리턴하면된다. 같은 경우라면 a나 b나 아무거나 리턴하면된다.

내가 작성한 코드는 아래와 같다.

function solution(nums) {
    let answer = 0;
    let halfed = nums.length / 2
    let noDuplicate = new Set(nums).size
    if(halfed < noDuplicate){
        answer = halfed
    } else {
        answer = noDuplicate
    } return answer
}
console.log(solution([3,1,2,3]))   // 2
console.log(solution([3,3,3,2,2,4]))   //3
console.log(solution([3,3,3,2,2,2]))   //2

역시 지문 이해하는게 너무 어렵다.