[프로그래머스] 폰켓몬

해달·2021년 12월 28일
0

프로그래머스 폰켓몬


문제에서 나온 조건

  1. 주어진 nums 배열의 2/n(최대값) 만큼 중복되지 않게 폰켓몬을 가져갈 수 있다
  2. 중복되지 않는 수가 2/n 보다 크면 최대값 만큼 포켓몬을 가져갈 수 있다

풀이

가져갈 수 있는 최대의 폰켓몬수를 half 변수로 값을 구한다
nums배열을 차례대로 탐색하면서
answer 배열안에 el(nums배열의 값)이 없고 answer의 배열이 half값을 넘지 않았을 경우
answer에 값을 push해준다
최종으로 answer의 length를 return 한다

function solution(nums) {
    let half = nums.length / 2
    let answer = [];
    nums.forEach(el => {
      if(!answer.includes(el) && answer.length < half){
        answer.push(el)        
      }
        
    })
    
    return answer.length;
}

남의풀이 (프로그래머스)

//가장많은 종류의 폰켓몬을 선택하는 방법이 여러가지여도 종류개수의 최댓값 하나만 REturn 한다
// 1. 나눈 값 2. 중복을 제거한 배열의 길이
// 두개의 값을 비교하여 어느것이 더 큰지에 따라 값을 리턴한다 만약 max보다 arr의 배열이 길면 max를 리턴하고 그렇지 않다면 arr을 리턴

function solution(nums) {
  const max = nums.length / 2;
  const arr = [...new Set(nums)];

return arr.length > max ? max : arr.length
}

삼항연상자를 이용하여 더 직관적이고 간결하게 코드를 작성할 수 있었다.

0개의 댓글