분류 전체보기(581)
-
[C++] 순열
1. 순열 서로 다른 n개의 원소에서 r개를 중복 없이 순서에 상관있게 선택하는 혹은 나열하는 것을 순열(permutation)이라고 한다. 2. next_permutation [Algorithm] C++에서 next_permutation 함수(혹은 prev_permutation 함수)를 통해서 순열 구하기 Practice makes perfect! twpower.github.io bool next_permutation (BidirectionalIterator first, BidirectionalIterator last, Compare comp); next_permutation: 현재 나와 있는 수열에서 인자로 넘어간 범위에 해당하는 다음 순열을 구하고 true를 반환한다. 다음 순열이 없다면(다음에 나..
2023.07.10 -
[C++] call by value? reference?
1. 주소연산자&와 참조연산자& #include using namespace std; int value(int a){ a += 10; cout
2023.07.09 -
[C++] struct 구조체
1. 구조체 구조체(struct)는 하나 이상의 변수를 그룹 지어서 새로운 자료형을 정의하는 것이다. 출처 : https://boycoding.tistory.com/183 가. struct와 class의 차이점 C++에서 클래스(class)와 구조체(struct)는 매우 유사한 방식으로 작동한다. 둘 다 데이터 필드와 메서드를 포함할 수 있으며, 이들을 하나의 단위로 묶는 방법을 제공한다. C++에서는 구조체도 메서드를 포함할 수 있다. 또한 클래스와 구조체 모두 상속을 통해 기능을 확장하고 코드를 재사용할 수 있습니다. 클래스(Class) 구조체(Struct) 기본 접근 제한자 Private Public 기본 상속 방식 Private Public 데이터와 메서드 모두 가능 모두 가능 생성자 및 소멸자 ..
2023.07.09 -
[C++] stack & queue & deque & priority_queue
map이 pair로 구현가능했다면 stack, queue, deque는 linked list로 구현 가능하다. 1. stack #include #include using namespace std; stack stk; int main(){ stk.push("엄"); stk.push("준"); stk.push("준"); stk.push("식"); stk.push("시.."); while(stk.size()){ cout
2023.07.09 -
[C++] set & multiset
STL 셋, 집합, set 사용법 [C++] set를 알아보자 set란 Sets are containers that store unique elements following a specific order. ++기본적으로는 오름차순으로 정렬된다. 집합과 같다. 같은 원소는 존재하지 않고 정렬되어있는 컨테이너를 말한다. luv-n-interest.tistory.com 1. set std::map과 std::set은 둘 다 C++의 Standard Template Library (STL)에 속하는 컨테이너입니다. 그러나 각각이 사용되는 목적과 저장하는 데이터의 형태가 다릅니다. std::map : std::map은 키-값 쌍을 저장하는 연관 컨테이너입니다. : 각각의 원소는 키와 값의 쌍으로 구성되며, 이 컨..
2023.07.09 -
[C++] map & unordered_map
0. 참고자료 (24) C++ map헤더의 map 사용법 용도 : pair가 그냥 두 자료형을 묶는 거라면, map은 왼쪽의 값을 key값으로 사용하고, 오른쪽의 값은 value값으로 사용한다. key와 value를 가지는 노드를 생성해서 정렬된 '트리형태'로 저장해두어 탐 ldgeao99.tistory.com [C++] pair, map, tuple 완정 정복 (20/7/9 수정) 업데이트 내역 - 20/6/15 : 최초 작성 - 20/7/9 : unordered_map 추가 pair pair란 두 객체를 하나의 객체... blog.naver.com pair로 map을 구현했다는 것을 알 수 있다. 2. map 가. 예제 1 #include #include using namespace std; map ..
2023.07.09 -
[C++] 자료구조 시간복잡도 정리
1. 랜덤접근과 순차적 접근 출처 : https://ko.m.wikipedia.org/wiki/파일:Random_vs_sequential_access.svg vector, Array와 같은 배열은 랜덤접근이 가능해서 k번째 요소에 접근할 때 O(1)이 걸리며 연결리스트, 스택, 큐는 순차적 접근만이 가능해서 k번째 요소에 접근할 때 O(k)이 걸립니다. vector, Array → 랜덤접근 → O(1) linked list, stack, queue → 순차적 접근 → O(n) 참조를 많이 하는 것은 배열로 하는 것이 좋다. vector, Array → 삽입, 삭제 → O(n) linked list, stack, queue → 삽입, 삭제 → O(1) 데이터 추가와 삭제를 많이 하는 것은 연결 리스트가 배..
2023.07.09 -
[C++] Linked list
1. 연결 리스트 요소가 인접한 메모리 위치에 저장되지 않는 선형 데이터 구조다. 데이터를 감싼 노드를 포인터로 연결해서 공간적인 효율성을 극대화시킨 자료 구조다. //sigle list의 node class Node { public: int data; Node* next; Node(){ data = 0; next = NULL; } Node(int data){ this->data = data; this->next = NULL; } }; 인접한 메모리 위치에 저장되지 않아서 공간 효율성이 높지만 반대로 인접한 메모리 위치에 저장되지 않기 때문에 순차적 접근이 강제된다. 이에 검색에 있어서 O(n)만큼의 시간이 소요된다. 연결리스트는 싱글연결리스트, 이중연결리스트, 원형싱글연결리스트 그리고 원형이중연결리스트..
2023.07.09