🕊 Link

Lv1. 폰켓몬 Javascript
https://programmers.co.kr/learn/courses/30/lessons/1845

🧑🏻‍💻 Code(javascript)

// set 활용
function solution(nums) {
  const max = nums.length / 2;
  const uniq = [...new Set(nums)];
  return uniq.length > max ? max : uniq.length
}

💡 Solution

// set 활용
function solution(nums) {
  const max = nums.length / 2;
  const uniq = [...new Set(nums)];
  // 포켓몬의 종류가 아무리 많아도 고를 수 있는 포켓몬 수 만큼의 종류만 가질 수 있음
  // 고를 수 있는 포켓몬 수가 아무리 많아도 최대 종류 수는 정해져 있음
  return uniq.length > max ? max : uniq.length
}

👨🏻‍💻💭 Self Feedback

  • programmers 다른 사람의 풀이(1)
    reduce 활용
const uniq = nums.reduce((acc, cur) => {
  acc.indexOf(cur) < 0 ? acc.push(cur) : "";
}, []);
  • programmers 다른 사람의 풀이(2)
    filter 활용
function solution(nums) {
  // indexOf는 배열의 앞에서부터 찾는 특성을 가짐.
  // 따라서 앞서 나왔던(중복되는) num은 self에서 indexOf했을 때 현재의 index와 다름.
  // 그 값이 같은 경우만 필터링해서 그 length를 할당
  const kindNum = nums.filter((num, i, self) => self.indexOf(num) === i).length;
  const pickNum = nums.length / 2;
  return kindNum >= pickNum ? pickNum : kindNum;
}

  • 2021.04.17 - 최초 작성

댓글 환영 질문 환영
by.protect-me

profile
protect me from what i want

0개의 댓글

관련 채용 정보