일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- web
- Algospot
- DP
- 인프런
- C언어
- Math
- server
- BOJ
- Cleancode
- 백준
- Python
- 종만북
- JavaScript
- String
- sorting
- greedy
- 따라하면서 배우는 C언어
- Algorithm
- udemy
- 따배씨
- programmers
- BFS
- BASIC
- 따라하며 배우는 C언어
- graph
- C
- 정수론
- php
- dfs
- 생활코딩
- Today
- Total
목록Language (271)
몽상실현개발주의
타인이 정의한 답을 의심하자. 타인의 정의한 답을 맹목적으로 따르지 않는다. 다양한 생각과 배움을 포기하지 않는 태도가 중요하다. 구글링만 하고 넘어가는 사례와 같다. 배움에 열린 태도를 가집니다. 나만의 " 디자인 패턴 / 구조 / 라이브러리 / 설계구조 " 에 갖혀있지 말자. 직접 생각하고 또 고민합니다. 항상 의심하고 열린태도로 바라보자. 클린코드가 무엇인지 자바스크립트를 통해 학습합니다. CleanCode for Js Js for CleanCode 자바스크립트가 우선인 강의, 클린코드에 위배될지라도 자바스크립트의 관용적이고 관습적인 패턴을 파악합니다. 흔히 알려진 자바스크립트 코드 스타일에 대한 견해를 탐구합니다. AirBnb, Google, Ecma, Prettier, ESLint, JShint..
[종만북] 문자열 검색 - KMP 알고리즘 / 문자열 문자열 검색 - KMP 알고리즘 단순한 알고리즘의 검색 과정에서 얻는정보를 이용하여 시간을 절약 할 수 있다. H 의 부분 문자열을 N 과 비교 시, N 의 첫 글자와 대응 되지 않는 H 의 부분문자열 위치를 시작 위치 후보들에서 제외 시키는 방법으로 구현하면 최적화가 가능하다. 이와 같은 방법은 커누스-모리스-프랫(Knuth-Morris-Pratt) 알고리즘이며, 흔히 KMP 알고리즘으로 부른다. H[i...i+matched-1] = N[...matched-1](접두사) 이 일치 할때, i < i+k < matched-1, H[i+k...i+matched-1] = N[K...] (접미사) 가 일치 한다면, N[K...] (접미사) = N[...mat..
[종만북] 문자열 검색 / 문자열 문자열 현대의 컴퓨터는 많은 양의 문자열 자료를 다룹니다. 문서 파일, 인터넷의 웹페이지. 이메일 그리고 문자 메시지들이 모두 다 문자열입니다. 때문에 문자열을 다루는 문제와 자료구조는 전산학의 중요한 연구 주제이며, 정보 검색 (Information retrieval) 이나 생물 정보학 (bioinformatics) 분야에서 특히 이용하게 사용됩니다. 문자열을 다루는 알고리즘 또한 매우 범위가 깊고 넓지만, 시간이 제한된 프로그래밍 대회 특성상 구현이 비교적 간단한 알고리즘이 주로 사용 됩니다. - KPM 알고리즘 : 문자열 검색 - 접미사 배열 (suffix array) : 문자열 처리 용어에 관하여 문자열의 부분 문자열(substring), 접두사(prefix), ..
[종만북] Queue, Stack, Deque / 큐와 스택, 데크 큐와 스택, 데크 Queue 큐 한쪽 끝에서 자료를 넣고 반대 쪽 끝에서 자료를 꺼낼 수 있다. 가장 먼저 들어간 자료를 가장 먼저 꺼내게 된다. FIFO (First In First Out) 선입선출 Stack 스택 한쪽 끝에서만 자료를 넣고 뺄 수 있다. 가장 늦게 들어간 자료를 가장 먼저 꺼내게 된다. LIFO (Last In First Out) 후입 선출 전산학 전반에 걸쳐 널리 사용된다. 함수 호출이 끝나고 이전 함수로 돌아갈 때, 이 함수 바로 이전의 함수로 돌아가야 하는데 컴퓨터는 내부적으로 스택(Stack)을 사용하여 함수들의 문백(context)를 관리한다. Deque 데크 양쪽 끝에서 자료들을 넣고 뺄 수 있는 자료 구..
[종만북] 연결 리스트 / 선형 자료 구조 연결 리스트 배열의 원소들의 순서를 유지하면서 임의의 위치에 원소를 삽입하거나, 임의의 위치에서 원소를 삭제하는것은 시간이 오래 걸리는 작업이다. 해당 위치 뒤에 있는 원소들을 하나씩 뒤칸 혹은 앞칸으로 옮겨야 하기 때문이다. 정확한 수행시간은 삽입이나 삭제 위치에 따라 다르지만, 평균적인 경우 이 작업들에는 원소들의 개수에 선형 비례하는 시간이 소요된다. 이와 같은 문제를 해결하기 위해 고안된 자료구조가 연결 리스트(Linked List) 이다. 연결 리스트는 특정 위치에서의 삽입과 삭제를 상수 시간에 할 수 있게 해 준다. 배열에서는 메모리의 연속된 위치에 각 원소들이 저장되어 있지만, 연결 리스트는 원소들이 메모리 여기저기 흩어져 있고 각 원소들은 이전과 ..
[종만북] 동적 배열 / 선형 자료 구조 동적 배열 배열의 큰 문제중 하나는 배열이 선언 될 때, 지정된 크기 이상의 자료를 넣을수 없는 것. 이와 같은 문제를 해결하기 위해 고안된 것이 자료의 개수가 변함에 따라 크기가 변경되는 동적 배열 (Dynamic Array) 배열을 이용해 만들어 낸 별도의 자료구조 배열의 특성 - 원소들은 메모리의 연속된 위치에 저장됨 - 주어진 위치의 원소를 반환하거나 변경하는 동작을 O(1) 에 완수 동적 배열의 추가 특성 - 배열의 크기를 변경하는 resize() 연산이 가능. 이 동작을 수행하는데는 배열의 크기 N 에 비례하는 시간이 소요 - 주어진 원소를 배열의 맨 끝에 추가함으로써 크기를 1 늘리는 append() 연산을 지원. 이 동작을 수행하는데 상수 시간 소요..
따배씨 - 따라하며 배우는 C언어 16강 전처리기와 라이브러리 16.17 가변 인수 Variable Arguments #include #include #include // Variable Arguments /* Variable Arguments - int printf(char const * const _Format, ...); 1. Provide a function prototype using an ellipsis void vaf1(int n, ...); // OK int vaf2(const char * s, int k, ...); // OK char vaf3(char c1, ..., char c2); // Not OK, ellipsis should be the last. double vaf4(...);..
따배씨 - 따라하며 배우는 C언어 16강 전처리기와 라이브러리 16.16 memcpy() 와 memmove() #include #include #include // memcpy(), memmove() #define LEN 6 void prt(int *arr, int n) { for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); } int main() { /* - overlapping region - pointer-to-void (datatype is unknown) */ int arr1[LEN] = { 1, 3, 5, 7, 9, 11}; int* arr2 = (int*)malloc(LEN * sizeof(int)); if (arr2 =..