728x90
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/1845
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이 방법
해시 문제라 그랬는데 나는 처음에 해시로 풀지 않는다.
해시로 풀게되면 객체를 선언해 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 |