잡다한 지식
-
c언어로 PQ구현잡다한 지식 2020. 9. 10. 21:23
Priority_queue 구현 1. 연결리스트 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182#include #include #include using namespace std; typedef struct Node { int data; Node *next;} Node;typedef struct Priority_Queue{ Node *head; int size;} Priority_Queue;void InitPQ(Priority_Queue*pq) { pq->head = NULL;..
-
c언어로 stack, queue 구현잡다한 지식 2020. 9. 8. 23:27
c언어에는 c++처럼 , STL이 없어서 직접 배열이나 리스트를 통해 구현해야한다. 1. stack 구현 1) 배열 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include using namespace std;#define MAX 100 int stack[MAX];int top = -1; //스택이 가득 찼는지 확인하는 함수bool IsFull() { if (top >= MAX - 1) return true; return false;}//스택이 비어있는지 확인하는 함수bool IsEmpty() { if (top top = NULL;}bool IsEmpty(Stack *st) { if (st-..
-
c++ string 변환잡다한 지식 2020. 9. 7. 22:05
자료형 변환 함수 1. string을 int형으로 : stoi(string 변수); 2. int를 string으로 : to_string(int 변수); 3. string을 char*로 : string 변수.c_str();ex) string s = "tomato"; char *ch; ch = s.c_str(); 4. char*을 string으로 : 그냥 바로 넣으면됨ex) char *ch = "Hello"; string s =""; s= ch; 5. char*을 int형으로 : atoi(char*변수)
-
c 라이브러리잡다한 지식 2020. 9. 4. 19:12
주로 사용하는 라이브러리와 관련 함수 1. : 표준 입출력① scanf() : 입력 // %d int, %lld long long, %f float, %lf double, %c char② printf() : 출력③ getchar() :문자하나입력ex) char ch = getchar(); 2. : 문자열 함수① strcpy(대상문자열, 원본문자열) : 문자열을 다른 배열이나 포인터(메모리)로 복사ex) char s1[10] = "Hello"; //마지막에 NULL문자들어감 char s2[10]; strcpy(s2,s1); // s1의 문자열을 s2에 복사 printf("%s\n", s2); ② strlen(문자열포인터 or 문자배열) : 문자열 길이를 반환, NULL부분 포함하지 않고 순수하게 문자열 길..
-
lower_bound & upper_bound 함수잡다한 지식 2020. 7. 12. 17:47
헤더에 정의되어 있는 함수 1. lower_bound : 범위 안의 원소들 중, value보다 작지 않은(크거나 같은) 첫번째 원소의 위치를 반복자로 반환이진탐색(binary search) 기반의 탐색법(이진탐색 기반이므로, 범위 안의 원소들은 정렬된 상태여야 한다.) 사용법 lower_bound(범위 시작 위치, 범위 마지막 위치, value) 2. upper_bound : 범위 안의 원소들 중, value보다 큰 첫번째 원소의 위치를 반복자로 반환이진탐색 기반의 탐색법 사용법upper_bound(범위 시작 위치, 범위 마지막 위치, value) 사용코드 예시) vector 사용 123456789101112131415161718192021222324#include #include #include usi..
-
bitset 사용법잡다한 지식 2020. 5. 28. 23:02
bitset STL- 원하는 비트를 사용하기 위해 쓰는 STL이다.- 고정된 크기의 비트 배열을 뜻한다.- #include 을 해야 사용가능- 사용법①bitset 이름 => 선언방법 ex) bitset bit; //20개 비트 수를 가지는 bit변수②이름.set() => 전체비트를 1로 바꿈③이름.reset() => 전체비트를 0으로 바꿈④이름.set(n,true/false) => n+1번째 비트를 1또는 0으로 바꿈⑤이름.size() => bitset의 크기반환⑥이름.flip(n) => n+1 번째 비트를 반전시킴⑦이름.to_string() => 전체비트를 string으로 바꿔준다.⑧이름.all() => 모든 비트가 1이면 true반환⑨이름.any() => 비트 중에서 1인 비트가 있으면 true 반환..
-
bit-mask잡다한 지식 2020. 4. 4. 18:59
Bit mask 비트마스크 정수를 이진수 표현으로 사용하는 것을 비트 마스크라고한다.((컴퓨터는 정수형 변수를 이진수로 표현.))비트가 1이면, true 켜져있다.비트가 0이면, false 꺼져있다. N개의 비트가 있을 때 정수의 최소값은 0정수의 최대값은 2^N - 1 연산 종류1. AND 연산 : &2. OR 연산 : |3. XOR연산 : ^4. NOT연산 : ~5. SHIFT연산 : a > b : a / 2^b 예를 들어 6개의 비트가 있다면.0 0 0 0 0 0 ~ 1 1 1 1 1 1 : 0부터 63까지 표현이 가능하다.특정 n번째 비트를 1로 바꾸는 방법은int temp =0; temp |= (1
-
복잡도 표기법잡다한 지식 2020. 3. 27. 13:41
알고리즘을 분석하는 방법은 시간 복잡도와 공간 복잡도로 나뉜다.- 시간 복잡도 (time complexity) : 알고리즘이 완료되는데까지 소요되는 시간- 공간 복잡도 (space complexity) : 알고리즘이 완료되는데까지 필요한 메모리 공간 이러한 복잡도의 표기방법으로는 총 3가지가 존재한다.1. 빅오메가(Big-Omega)2. 빅세타(Big-Theta)3. 빅오(Big-O)이 표기법들을 점근적 표기법 즉 대략적인 표기법이라고 한다.n을 알고리즘의 input의 크기라고 할 때.알고리즘의 복잡한 함수를 일일이 나타내지 않고, 알고리즘의 basic operation을 선택해 basic operation의 수를 n에 대한 비례식으로 세우는 것이다. (중요하지 않은 항과 상수 계수를 제거) 각 표기방법..