[프로그래머스/자바스크립트] 해시 문제 풀이 모음
·
코딩테스트/프로그래머스-JS
1. 폰켓몬 - lv.1https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr다양한 종류의 폰켓몬을 가지기 위해 배열의 중복을 제거한다.중복을 제거한 배열의 길이가 N/2보다 큰 경우 가져갈 수 있는 폰켓몬의 최대 수는 N/2이다. 따라서 리턴 값은 배열의 길이와 N/2 중 더 작은 수가 된다.function solution(nums) { return Math.min(new Set(nums).size, nums.length/2);}2. 완주하지 못한 선수 - lv.1https://school.p..
[자료구조] 해시법(hashing) 자바스크립트 구현
·
CS/자료구조_알고리즘
해시법해시법은 데이터를 저장할 위치(인덱스)를 간단한 연산으로 구하여 검색과 추가, 삭제를 효율적으로 수행할 수 있는 방법이다. 아래 요소가 13개인 배열에서 앞쪽 10개 요소에 오름차순으로 정렬된 데이터가 저장되어 있다.a[5, 6, 14, 20, 29, 34, 37, 51, 69, 75, -, -, -]이 배열에 35를 추가하는 과정은 다음과 같다.1. 삽입할 위치가 a[5]와 a[6] 사이임을 이진 검색법으로 찾는다.2. a[6] 이후의 모든 요소를 하나씩 뒤로 이동한다.3. a[6]에 35를 대입한다.b[5, 6, 14, 20, 29, 34, 35, 37, 51, 69, 75, -, -]요소 이동에 필요한 복잡도는 O(n)이므로 비용은 작지 않다. 데이터를 삭제하는 경우에도 똑같은 비용이 발생한다..