본문 바로가기
반응형

전체 글69

STL set 구조체활용(1) - 사용법(set은 만능이다?) 이번 글에서는 set의 기본 사용법을 알아보도록 하겠습니다. 그리고 마지막에는 Set을 문제 풀이에서 어떻게 사용하면 좋을지 말씀드리겠습니다. 1. set이란?set은 이진탐색트리(Binary Search Tree, BST) 구조로 구성되어 있습니다. 실제로는 BST 중 Red-Black Tree로 구현되어 있습니다. 그래서 최악의 경우에도 삽입,삭제,조회가 O(logN)만에 가능합니다.참고로 이진탐색 트리는 항상 우선순위가 "왼쪽자식노드이진탐색 트리의 내부 원소들은 항상 정렬된 상태를 유지합니다. Set의 경우 우선순위가 같은 원소들은 존재할 수 없습니다. 모든 원소는 유일합니다!! 기억해야할 내용을 요약하자면,1) set은 삽입, 삭제, 조회가 O(logN)만에 가능합니다.2) set의 모든 원소는 .. 2023. 3. 13.
1. STL String 클래스를 C언어에서 사용하기 이번 글에서는 string 클래스를 C언어에서 사용하는 방법에 대해 알아보려고 합니다. (string 클래스의 기본 사용법은 다른 글에서 제대로 다루도록 하겠습니다 ㅎㅎ) 보통 C언어에서 string을 사용하려고 할 때 막히는 부분은 입력, 출력일 것입니다. 왜냐하면 scanf()로 string을 바로 입력받을 수 없고, printf()로 string을 바로 출력 할 수 없기 때문입니다. 이 문제점은 char형 배열을 string으로 변환하거나, string을 char형 배열로 변환 할 수 있다면 바로 해결 가능합니다.  1. char형 배열을 string에 복사하기: 그냥 대입연산자 사용하기!!이 경우 배열의 '\0'문자 전까지가 string에 복사됩니다.#include#includeusing name.. 2023. 3. 13.
HEAP (2) - 업그레이드 된 HEAP 힙 (특정원소 삭제, 업데이트 O(logN)만에 가능) 2023.03.12 - [자료구조/HEAP 힙] - 1.HEAP 힙 기본 구현 (C언어 구현, index 1부터 시작) 1.HEAP 힙 기본 구현 (C언어 구현, index 1부터 시작)1. HEAP 힙 요약 힙은 우선순위가 가장 높은 원소가 루트(첫번째 인덱스)에 존재하는 것이 보장된 자료구조입니다. 또한, 부모노드는 자식노드보다 우선순위가 높습니다.(우선순위가 같은 경우가best-coding.tistory.com지난 시간에 구현한 힙 코드를 조금 더 업그레이드 시켜서 특정 원소 삭제 및 업데이트가 O(logN)만에 가능한 코드를 만들어 보겠습니다.  1. 기본 아이디어지난번에는 특정 id에 해당하는 원소를 찾기위해 힙의 첫번째 원소부터 순차적으로 반복문을 돌리면서 해당하는 인덱스를 얻었습니다. 하지만.. 2023. 3. 12.
HEAP(1) - 힙 기본 구현 (C언어 구현, index 1부터 시작) 1. HEAP 힙 요약힙은 우선순위가 가장 높은 원소가 루트(첫번째 인덱스)에 존재하는 것이 보장된 자료구조입니다. 또한, 부모노드는 자식노드보다 우선순위가 높습니다.(우선순위가 같은 경우가 있을 수는 있음)힙은 트리로 표현 가능한데, 완전이진트리의 한 종류입니다(자식 최대 2개, 자식은 왼쪽부터 생김)그리고 힙은 STL의 우선순위 큐랑 같은 것이라고 보시면 됩니다. STL의 우선순위 큐를 사용해도 되지만, 힙의 경우 구현이 간단하므로 직접 구현해서 사용하는 것 좋습니다. 왜냐하면 STL을 사용하는 것 보다는 직접 만들어 사용하면 실행시간을 꽤 많이 줄일 수 있기 때문입니다. 주의) Heap은 전체 원소가 우선순위대로 정렬된 자료구조가 아닙니다. 특정원소의 왼쪽 자식이 오른쪽 자식보다 클 수도 있고, 작.. 2023. 3. 12.
반응형