일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- radare2
- 리눅스 커널
- 시스템해킹
- 커널
- css
- write up
- kernel
- 드론
- 어셈블리어
- C언어
- pwn.college
- 시스템
- Pwnable.kr
- Leviathan
- 워게임
- C++
- 리눅스커널
- wargame
- 프로그래밍
- 리눅스
- px4
- pwncollege
- 컴퓨터구조
- 알고리즘
- 취약점
- 시그널
- 시스템프로그래밍
- 시스템 프로그래밍
- Bandit
- 리버싱
- Today
- Total
목록C언어 (4)
Computer Security

C++에서의 Hello World 는? 코드예시 #include using namespace std; int main(void) { cout input; std::cout 와 는 공백 문자(Space, Enter, Tab)을 기준으로 입력을 받는다. C++의 네임스페이스 네임스페이스(Namespace)는 특정한 영역에 이름을 설정할 수 있도록 하는 문법이다. 네임스페이스는 서로 다른 개발자가 공동으로 프로젝트를 진행할 때 각자 개발한 모듈을 하나로 합칠 수 있도록 해준다. 코드예시 #include using namespace std; namespace A { void function() { cout

라빈 카프 문자열 매칭 -아스키 코드 기반의 해시함수(Hash Function)을 이용해 특정한 문자열에 대한 해시 값을 구한다. -'연속적인 문자열이 이어지는' 상황이므로 해시함수의 동작에 있어서 연산 속도가 O(1)이다. 라빈 카프 문자열 매칭: 해시 함수 -라빈 카프 문자열 매칭 알고리즘에서 해시 함수는 '각 문자의 아스키 코드 값에 2의 제곱 수를 차례대로 곱해 더한 값'을 구한다. -일반적으로 서로 다른 문자열의 경우 해시 값이 다르게 나온다. 해시 함수에 기반한다는 점에서 해시 충돌에 대한 처리가 필요하다. (해시 함수(hash function) 또는 해시 알고리즘 또는 해시함수알고리즘은 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다.) ex) 문자열: “bbacdab” = ..

단순 비교 문자열 매칭 1.단순 비교 문자열 매칭 알고리즘은 두 문자열을 처음부터 끝까지 계속 비교하는 알고리즘입니다. 2.단순 비교 문자열 매칭 알고리즘은 O(NM)의 시간 복잡도를 가집니다. ex) ABCDEFG 에서 EF를 찾는 경우 AB랑 EF를 비교, BC랑 EF를 비교 ... 이런식으로 하나하나 찾아 나간다. 코드예시 #include #include char* parent = "ABCDEFG"; char* pattern = "EF"; int main(void) { int parentSize = strlen(parent); int patternSize = strlen(pattern); for (int i = 0; i 0 && pattern[i] != pattern[j]) { j = table[j..

인덱스 트리 트리 구조로 구간 합 구하기 -세그먼트 트리는 구현하는 과정이 복잡하고 어렵다는 점에서 구간 합을 더 쉽게 구할 방법이 필요하다. -인덱스 트리는 구현이 매우 간단하다. -인덱스 트리를 활용해 구간 합을 구하는 과정도 O(logN)의 시간 복잡도를 가진다. -인덱스 트리는 세그먼트 트리에 비해서 메모리 효율성이 높다. 특정한 숫자의 마지막 비트 구하기 -특정한 숫자 A의 가장 마지막 비트를 구하고자 할 때는 A& -A를 구하면 된다. ex) A가 14일 때 이를 비트 형태로 표현하면, A = 00000000 00000000 00000000 00001110 -A = 11111111 11111111 11111111 11110010 A & -A = 00000000 00000000 00000000 ..