일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 브라우저
- RxJS
- GraphQL
- 프로세스
- 자바스크립트
- 이진탐색
- 스택
- Machine Learning
- vue3
- 배열
- APOLLO
- 연결 리스트
- 프론트엔드
- 릿코드
- RT scheduling
- pytorch
- C
- 큐
- 컨테이너
- 해시테이블
- 포인터
- 알고리즘
- 코딩테스트
- alexnet
- 타입스크립트
- 자료구조
- cors
- 프로그래머스
- 연결리스트
- 웹팩
- Today
- Total
목록해시테이블 (5)
프린세스 다이어리
> 문제 바로가기 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 1. 접근 방법 (0) 일단 문제가 해시 카테고리에 있다는 점을 참고해 map을 생성하여 작성함. (1) map에 장르별로 key에 장르를, value에 각 곡의 인덱스와 실행 횟수를 배열로 넣어주고, 문제의 조건대로 value 정렬하기 let map = new Map(); for (let i = 0; i < genres.length; i++) { if (map.get(genres[i])) { map.set(genres[i], [...map...
> 문제 바로가기 1. 접근 방법 (1) 주어지는 clothes 배열을 for...of 문으로 돌면서 map에 넣어준다. for (let clothing of clothes) { if (map.get(clothing[1])) { map.set(clothing[1], [...map.get(clothing[1]), clothing[0]]) } else { map.set(clothing[1], [clothing[0]]); } } (2) 옷을 입는 경우의 수를 계산한다. 아무것도 안 입는 경우는(-///-) 없기 때문에 마지막에 1을 뺀다. for (let [key, value] of map) { result = result * (value.length + 1) } return result - 1; 2. 전체 ..
> 문제 바로가기 1. 접근 방법 (0) 동명이인이 있을 수 있다는 점에서 해시 테이블로 푸는 방법을 생각했다. (1) participant를 map에 저장하면서, key는 참가자 이름, value는 동명이인이 이미 있으면 +1, 없으면 그냥 1로 넣어준다. for (let person of participant){ if(!map.get(person)){ map.set(person, 1); }else{ map.set(person, map.get(person)+1); } } (2) completion을 돌면서 한 명씩 map에 이름에 해당하는 값이 1이면 엘리먼트를 삭제해 주고, 2 이상이면 1을 뺀다. for(let person of completion){ if(map.get(person) >= 2){ ..
> 자바스크립트 해시 테이블 구현하는 방법에서 이어진다. class HashTable { table = new Array(3); /// ... } 만약 위 같이 테이블의 길이가 너무 짧은 경우에는 해시 충돌이 일어난다. myTable.setItem('firstName', 'eunjin'); myTable.setItem('lastName', 'lee'); myTable.setItem('age', 29); myTable.setItem('birth', '2000-00-00'); console.log(myTable.getItem('firstName')); // 2000-00-00 console.log(myTable.getItem('lastName')); // 2000-00-00 당장 key-value 4개만 집..
const person = {}; person['firstName'] = 'eunjin'; person['lastName'] = 'lee'; 위 코드는 string 자료형의 key에 해당하는 공간에 string 자료형의 value를 집어넣은 것이다. 이렇게 키와 값의 형태로 데이터를 저장하는 자료 구조를 자바스크립트의 object나 map, 파이썬의 dictionary 등으로 구현할 수 있다. 이들은 모두 해시 테이블의 일종이다. 자료구조를 공부할 때 흔히 이야기하는 해시 테이블이라 함은 특정 오퍼레이션에 대해 시간복잡도를 해결해야 할 때, 원하는 값을 key로 사용하는 자료구조다. 해시 테이블이 무엇인지 공부하고 자바스크립트로 해시 테이블을 짜는 방법을 정리해 보았다. 1. Hash Table 생성하기..