728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/1845
문제 풀이 방법
해시 문제라 그랬는데 나는 처음에 해시로 풀지 않는다.
해시로 풀게되면 객체를 선언해 key가 폰켓몬 넘버, value는 갯수를 넣어줘 객체를 만들고 계산해주면 된다.
완성된 코드
const solution = (nums) => {
const n = nums.length / 2;
const map = new Set([...nums]);
return map.size > n ? n : map.size;
}
해시로 푼 코드
const solution = (nums) => {
const n = nums.length / 2;
const hash = nums.reduce((acc, cur) => {
acc[cur] ? acc[cur]++ : acc[cur] = 1;
return acc;
}, {});
const hl = Object.keys(hash).length;
return hl > n ? n : hl;
}
728x90
'코딩 테스트 > 프로그래머스 코딩 테스트 연습' 카테고리의 다른 글
[JS] 2Level / 2020 카카오 인턴십 / 수식 최대화 (0) | 2023.10.31 |
---|---|
[JS] 2Level / 완전탐색 / 전력망을 둘로 나누기 (0) | 2023.10.30 |
[JS] 1Level / 연습문제 / 카드 뭉치 (0) | 2023.10.27 |
[JS] 2Level / 2021 Dev-Matching: 웹 백엔드 개발자(상반기) / 행렬 테두리 회전하기 (0) | 2023.10.26 |
[JS] 1Level / 연습문제 / 명예의 전당(1) (0) | 2023.10.24 |