본문 바로가기

해쉬2

Hash c++ 개념 정리 Hash Hash는 기본적으로 임의의 길이의 문자열을 받아 고유한 key값을 생성한다. 그리고 그 key값에 value를 저장한다. 이렇게 저장을 할 때 같은 key값이 나올 수도 있다. 그래서 그러한 경우에는 Chaning 방법을 써서 해결하면 된다. Chaning이란 연결리스트를 통해 바로 뒤로 이어서 저장을 한다. 해싱함수 #define MAX_TABLE 10000 // 내가 필요한 만큼의 테이블 크기로 잡아주면 된다. int hashing(string input){ // 정수로 바꿔 주는 함수이다. int div = 401; // 이렇게 정수로 바꿀때 특정한 소수들을 이용하면 최대한 key값이 겹치지 않게 만들 수 있다. int i = 0; int len = input.length(); while.. 2023. 4. 14.
백준 1269번 (대칭 차집합) c++ 문제 문제 풀이 두 가지 방법으로 이 문제를 풀 수 있다. 1. Map을 사용하는 방법 2. Hash를 사용하는 방법 Map이란? map은 각 노드가 key와 value로 이루어진 트리이다. 중복을 허용하지 않는게 특징이다. 그리고 map은 검색, 삽입, 삭제 등이 O(logn)인 레드블랙트리로 구성되어 있다. map map1; map은 기본적으로 key를 기준으로 오름차순으로 정렬을 한다. 만약 내림차순으로 사용하고 싶다면 map map1;로 사용하면 된다. Map 삽입 그리고 map을 삽입할 때 가장 중요한 점은 pair 객체로 넣어야 한다는 것이다. map1.insert(pair(1, 2)); Map 검색 map은 기본적으로 데이터를 찾을 때 iterator를 사용한다. 그래서 map의 멤버함수인 .. 2023. 4. 14.