전체 글99 C++ 자료구조 - unordered map(hash map) unordered map(hash map) map과 비슷하지만 정렬이 되어있지 않다. insert, erase, find 모두가 O(1)O(1) 으로 수행된다 셋이나 맵의 경우 O(log n)O(logn) 이었지만, unordered_set 과 unordered_map 의 경우 상수 시간에 원소를 삽입하고, 검색할 수 있다. 원소의 key 값(데이터형)을 hash function을 통해 생성한다.(대부분 정수값) 다른 원소이지만 같은 해시값을 가질 수 있다(해시 충돌(hash collision)) 1. 사용 - #include - unordered_map [변수이름] 2. 생성자와 연산자(int로) - unordered_map um; - 비어있는 unordered_map um을 생성 3. 멤버 함수 - .. 2020. 6. 22. C++ 1. Two Sum(Leet Code) Leet Code_1. Two Sum https://leetcode.com/problems/two-sum/ 문제 해석 이 문제를 풀기위해 이해해야 할 내용은 다음과 같습니다. 목표 더해서 target 값이 되는 두개의 원소 찾기 방법 1. 더해서 target 값이 되는 두개의 원소 찾기 2. hash map을 사용한다. 결과 더해서 target 값이 되는 두개의 원소 찾기 통과한 코드 그냥 순회하면서 찾는 코드 class Solution { public: vector twoSum(vector& nums, int target) { vector res; for(int i = 0 ; i < nums.size() ; i++) { for(int j = i+1 ; j 2020. 6. 22. C++ 자료구조 - Deque Deque - LIFO, FIFO 두 가지 방식을 다 사용할 수 있는 스택큐 짬뽕. - VECTOR는 끝부분에 삽입할 때만 빠르지만 덱은 앞뒤로 다 빠름. 하지만 중간에 삽입 삭제 시 벡터처럼 밀거나 땡겨야되는 단점을 가진다.(여러개의 블록을 할당하므로) 1. 사용 - #include - deque [변수이름] 2. 생성자와 연산자(int로) - vector v; - 비어있는 vector v를 생성 - vector v(5); - 0으로 초기화 된 5개의 원소를 가지는 vector v를 생성 - vector v(5,2); - 2으로 초기화 된 5개의 원소를 가지는 vector v를 생성 3. 멤버 함수 - dq.assign(5,2); - 2의 값으로 5개의 원소 할당 - dq.at(idx); - idx번째.. 2020. 6. 21. C++ 자료구조 - Set Set - Map과 동일하나 Key 값만 이용한다. 완전 이진트리. 우리가 알고 있는 그 이진탐색트리랑 작동구조 똑같다. - Key 값은 데이터를 뜻함. - 이진탐색트리의 장점을 그대로 가지고 오므로, 정렬해야할때, 빨리 데이터를 찾아야 할때 좋다. 1. 사용 - #include - set [변수이름]; 2. 생성자와 연산자 - set s; - 기본 선언 방법 - set s(pred); - pred를 통해 정렬기준(오름, 내림) - set s2(s1); - s1을 복사한 s2를 생성 3. 멤버 함수 - s.begin(); - 맨 첫 번째 원소를 가리키는 iter - s.end(); - 맨 마지막 원소를 가리키는 iter - s.rbegin(); - 역으로 처음을 가키리는 iter - s.rend(); -.. 2020. 6. 21. 이전 1 ··· 8 9 10 11 12 13 14 ··· 25 다음