https://programmers.co.kr/learn/courses/30/lessons/1845
이것은 너무 어렵게 생각했다.
그리고 바로 생각나는 대로 진행했지만 더 좋은 방법이 있었다.
나의코드
function solution(nums) {
var answer = 0;
const 뽑아야하는포켓몬수 = Math.floor(nums.length/2)
const 객체로변환 = nums.reduce((acc, cur) =>{
acc[cur] = (acc[cur] || 0) + 1;
return acc;
}, {})
const 포켓몬종류수 = Object.keys(객체로변환).length
return 뽑아야하는포켓몬수 < 포켓몬종류수 ? 뽑아야하는포켓몬수 : 포켓몬종류수 ;
}
다른 사람 풀이
function solution(nums) {
const max = nums.length / 2;
const arr = [...new Set(nums)];
return arr.length > max ? max : arr.length
}
이거 더 편한 것 같다.
일단 이것처럼 굳이 정수로 바꾸지 않아도 될 것 같다.
그리고 set으로 중복을 제거해준뒤 다시 배열로 만들면 중복되지 않은 것들만 남기에
length를 한다면 몇 종류가 있는지 알 수 있느니 바로 계산하면되니 더 편리한 것 같다.
'알고리즘 > 프로그래머스 - JS' 카테고리의 다른 글
[프로그래머스-JS] level.1 약수의 개수와 덧셈 (0) | 2022.07.14 |
---|---|
[프로그래머스-JS] level.1 실패율 (0) | 2022.07.14 |
[프로그래머스-JS] level.1 k번째수 <정렬> (0) | 2022.06.30 |
[프로그래머스-JS] level.1 완주하지 못한 선수 (0) | 2022.06.28 |
[프로그래머스-JS] level.1 소수 만들기 <소수> (0) | 2022.06.28 |