Algorithm JS | 프로그래머스 코딩테스트_폰켓몬

앙두·2023년 8월 22일
0

Algorithm

목록 보기
17/17

📑 문제

문제 (레벨 1부터는 문제자체도 길고 복잡하다...)
  • nums 는 폰켓몬 종류번호가 담긴 배열
  • 가질 수 있는 폰켓몬 갯수는 nums/2마리이다.
  • 고를 수 있는 종류의 최댓값을 return

🤓 나의 풀이

function solution(nums) {
    const max = parseInt(nums.length / 2)
    const noRepeat = [...new Set(nums)]
    return noRepeat.length > max ? max : noRepeat.length;
}

어렵지 않게 푼 듯.

  • 먼저 고를 수 있는 max 개수를 설정한다. nums로 들어오는 배열의 길이를 2로 나눈다.
    ( 홀수일수도 있으니 parseInt로 정수로만 반환하게 한다. 소수점 제거 )
  • 배열 내 반복되는 모든 요소를 제거하기 위해, new Set 메서드를 사용했다.
  • new Set 메서드는 객체를 반환하므로, spread operator 로 배열로 변환해준다.
    ( 다른사람풀이 보니까, new Set의 반환객체에 .size 를 붙여주면, 길이가 구해지긴 한다. 객체메서드인가 했는데, 또 아니다. )
  • 반복을 제거한 배열인 noRepeatlengthmax보다 크면 안되므로 삼항연산자를 걸어준다.
  • max보다 noRepeat의 길이가 크면 max를 반환. 아니면 noRepeat의 길이를 반환.

리팩토링할 필요는 없을 것 같다. 잘 푼 듯! ✌🏻

profile
쓸모있는 기술자

0개의 댓글