프로그래머스 1단계 - 폰켓몬 (해시)

원동휘·2022년 10월 16일
0

프로그래머스

목록 보기
39/46

< 문제 >

풀이
hash Map 풀이
new Set메소드를 사용했고, 문제에서 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다라고 했기때문에 총갯수를 2로 나눈 값을 length라는 변수에 담아두고 문제에서 이 length값이 최대값임을 알 수 있고, 배열의 중복을 제거해서 nH에 담고 nH의 size 즉 길이가 length보다 작을때만 nH의 크기를 return해주고, 그게 아닐경우 최대값인 length를 return 해주는 풀이.

// hash Map 풀이
function solution(nums) {
  let length = nums.length / 2;
  let nH = new Set();
  nums.forEach(item => {
    nH.add(item);
  });
  return length > nH.size ? nH.size : length;
}

console.log(solution([3, 1, 2, 3]));
console.log(solution([3, 3, 3, 2, 2, 4]));
// js 메소드 풀이
function solution(nums) {
  let answer = [];
  let length = nums.length / 2;
  for (let i = 0; i < nums.length; i++) {
    if (!answer.includes(nums[i])) {
      answer.push(nums[i]);
    }
  }
  return length < answer.length ? length : answer.length;
}

console.log(solution([3, 1, 2, 3]));
console.log(solution([3, 3, 3, 2, 2, 4]));
profile
Front-End Developer #Nextjs #React #Typescript

0개의 댓글