본문 바로가기

전체 글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.