map5 C++ 860. Lemonade Change(Leet Code) Leet Code_860. Lemonade Change Greedy https://leetcode.com/problems/lemonade-change/ 문제 해석 이 문제를 풀기위해 이해해야 할 내용은 다음과 같습니다. 목표 고객들에게 거스름돈을 주면서 판매가 가능한지 확인하기 방법 1. 고객들에게 거스름돈을 주면서 판매가 가능한지 확인하기 결과 고객들에게 거스름돈을 주면서 판매가 가능한지 확인하기 통과한 코드 class Solution { public: unordered_map maps; bool pay(int n) { int pay = n; if (n == 5) { maps[5]++; return true; } while (n > 20 && maps.find(20) != maps.end() && .. 2020. 6. 23. C++ 136. Single Number(Leet Code) Leet Code_136. Single Number https://leetcode.com/problems/single-number/ 문제 해석 이 문제를 풀기위해 이해해야 할 내용은 다음과 같습니다. 목표 vector 원소 중 중복되지 않는 숫자 구하기 방법 1. vector 원소 중 중복되지 않는 숫자 구하기 2. hash table을 사용하기 결과 vector 원소 중 중복되지 않는 숫자 구하기 통과한 코드 class Solution { public: int singleNumber(vector& nums) { unordered_map map; for(int i = 0 ; i < nums.size() ; i++) { map[nums[i]]++; } for (unordered_map::iterator.. 2020. 6. 22. C++ 자료구조 - Map Map - 완전이진트리. 구조로는 레드블랙트리를 사용한다. 키와 값을 이용한다. 정렬대상은 Key를 기준으로 오름차순으로 정렬한다. - 삽입이 되면서 자동으로 정렬 1. 사용 - #include - map [변수이름]; 2. 생성자와 연산자 - map m; - 기본 선언 방법 - map m(pred); - pred를 통해 정렬기준(오름, 내림) - map m2(m1); - m1을 복사한 m2를 생성 3. 멤버 함수 - m.begin(); - 맨 첫 번째 원소를 가리키는 iter - m.end(); - 맨 마지막 원소를 가리키는 iter - m.rbegin(); - 역으로 처음을 가키리는 iter - m.rend(); - 역으로 마지막을 가리키는 iter - m.clear(); - 모든 원소를 제거 - m.. 2020. 6. 21. C++ 자료구조 정리 1. LIST - 더블 링크드 리스트로 구현되어 있다. - 더블 링크드 리스트의 장점을 그대로 가져오며 중간에 삽입/삭제가 빠르다. - 하지만 특정 원소에 접근하려면 선형탐색을 해야한다. 상호 포인터 정보를 가지고 있기 때문에 메모리 사용비율이 높다. 2. Stack 3. Queue 4. Vector - 배열인데, 동적으로 크기를 확장 또는 축소가 가능하게 되어있는 자료구조(크기조절 시 오버헤드 큼) - 역시 배열의 특징을 그대로 가져온다. 데이터의 위치를 알고 있으면 랜덤 엑세스가 가능하다. - 하지만 중간에 데이터를 삽입 또는 제거하려면 땡기거나 밀어야 되는 단점도 그대로 가지고 온다. - 하지만 끝부분에 삽입할 땐 빠름 5. Deque(덱) - LIFO, FIFO 두 가지 방식을 다 사용할 수 있는.. 2020. 6. 19. 이전 1 2 다음