일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 2015 봄학기 알고리즘
- 2750
- All Longest Strings
- 파이썬머신러닝완벽가이드
- 피보나치 수
- baekjun
- Counting cells in a blob
- adjacentElementsProduct
- centuryFromYear
- Python
- C++
- markdown
- Daily Commit
- recursion
- til
- data_structure
- 10953
- 백준
- shapeArea
- Sequential Search
- flask
- Numpy
- codesingal
- cpp
- almostIncreasingSequence
- codesignal
- matrixElementsSum
- 파이썬 포렌식
- collections.deque
- 수 정렬하기
- Today
- Total
목록Doing 80
Introfor
#include int size = 8; int maze[8][8] = { {0, 0, 0, 0, 0, 0, 0, 1}, {0, 1, 1, 0, 1, 1, 0, 1}, {0, 0, 0, 1, 0, 0, 0, 1}, {0, 1, 0, 0, 1, 1, 0, 0}, {0, 1, 1, 1, 0, 0, 1, 1}, {0, 1, 0, 0, 0, 1, 0, 1}, {0, 0, 0, 1, 0, 0, 0, 1}, {0, 1, 1, 1, 0, 1, 0, 0}, }; int pathWay = 0; int wall = 1; int blocked = 2; int path = 3; int find_path(int x, int y){ if (x=size) return 0; else if (maze[x][y] != pathWay) ..
#include #include typedef struct node{ int data; struct node* next; } Node; int main(){ Node* head = NULL; head = (Node*)malloc(sizeof(Node)); head->data = 1; head->next = NULL; Node* q = (Node *)malloc(sizeof(Node)); q->data = 2; q->next = NULL; head->next = q; q = (Node *)malloc(sizeof(Node)); q->data = 0; q->next = head; head = q; Node *p = head; while(p!=NULL){ printf("%d\n", p->data); p = p..
이 글은 인프런에서 "영리한 프로그래밍을 위한 알고리즘 강좌"를 제 생각과 더불어 이해하기 쉬운 방식으로 정리한 글입니다. Recursion(재귀, 순환) def func(n): if nend: return -1 elif target == data_list[start]: return start else: return sequencial_search(data_list, start+1, end, target) data_list = [4, 2, 1, 6, 5, 7, 3] print(sequencial_search(data_list, 0, len(data_list)-1, 5)) 더보기 4 위 코드에서 sequencial_search 함수의 매개변수를 보면 데이터 리스트, 시작점, 끝점, 목표값으로 구성되어 있다..
Queue는 스택과 달리 한 쪽에서 들어가서 다른 한 쪽으로 나오는 구조로 파이프을 연상하면 쉽게 이해할 수 있다. 일직선으로 양쪽이 뚫린 파이프 모형에 어떤 물체를 넣는다면 처음에 넣어던 물체가 제일 처음 나오는 구조인 것을 알 수 있다. 이것을 FIFO(First In First Out)이라고 한다. class Queue: def __init__(self): self.items = [] self.max = 5 def add(self, item): if len(self.items) 0: self.items.pop(0) else:..

Stack 영어로 '쌓다'라는 의미를 가지는 것처럼 알고리즘에서 의미도 동일하다. 하나의 스택 공간이 주어지고, 그 공간에 데이터를 쌓는다. 그리고 그 공간에 있는 데이터를 활용하기 위해서 마지막에 넣은 데이터부터 순차적으로 빼는 과정을 가진다. 이것을 마지막에 들어간 데이터가 먼저 나온다라고 해서 LIFO(리포, Last IN First Out)라고 부른다. stack 구조를 사용하는 예로 chrome이나 whale 등과 같은 브라우저에서 사용되는 back button과 DFS(Depth First Search) 깊이 우선 탐색이 있다. DFS의 경우 나중에 블로그에 업로드할 계획이다. C #include #define STACK_SIZE 500 int stack[STACK_SIZE]; int top ..
python에서 행렬과 선형대수를 다루는 패키지로 Numpy가 있다. Numpy는 C언어로 구현된 파이썬 라이브러리로, 고성능 수치계산을 위해 제작되었다. 이것은 데이터 분석을 할 때 사용되는 라이브러리인 pandas와 matplotlib의 기반으로 사용되기도 한다. np.array() import numpy as np # array() 함수 : 리스트 객체를 주로 인자로 받음. 서로 다른 데이터타입이 존재할 경우, 더 큰 데이터 타입으로 변환 # ndarray.shape : 차원과 크기를 튜플 형태로 나타냄 array1 = np.array([1, 2, 3]) print('array1 type: ', type(array1)) print('array1 array 형태:', array1.shape) arra..
zfill() print("3".zfill(3)) Result 003
여러 블로그에서 반복문으로 작성된 코드들만 있어서 공부할 겸 직접 코드를 작성해보았다. 순차 탐색은 한 배열이 주어졌을 때, 거기서 원하는 키값이 존재하는지 찾는 알고리즘이다. 단순 알고리즘으로 사용에는 편리하나 효율적이지 못한 알고리즘이다. 5 4 2 7 0 2 3 9 위에서 이런 식으로 배열이 존재할 때, 이 배열에 key = 2가 존재하는지 확인하기 위해 index = 0인 배열의 값 것부터 순차적으로 key 값과 비교해서 찾는 방식입니다. #include void sequentialSearch(int arr[], int key, int index, int length){ if(index>=length){ printf("없음"); return; } if(arr[index]==key){ printf(..
Reference C언어에서 다루었던 포인터와 비슷한 개념이지만 다르다. 어떤 변수나 상수를 다른 변수가 참조해서 동일한 값을 가지도록 만든다. #include int change_val(int &p){ // 레퍼런스를 통해 전역변수를 선언하지 않고 함수 내의 변수와 연결 가능 p = 3; return 0; } int main(){ int x = 5; change_val(x); int& y = x; int& z = y; printf("x: %d y: %d z: %d \n",x, y, z); y = 10; printf("x: %d y: %d z: %d \n",x, y, z); z = 8; printf("x: %d y: %d z: %d \n",x, y, z); } Result x: 3 y: 3 z: 3 x:..
STL 표준 템플릿 라이브러리(Standard Template Library) C++에서 필요한 자료구조와 알고리즘을 Template로 제공하는 라이브러리 구성 Container, Iterator, functor, Algorith Pair and Vector Pair #include 헤더 파일을 추가해주거나 또는 헤더를 추가해줍니다. Pair는 두 쌍의 자료형을 묶어서 사용하는 것으로 pair형식으로 작성한다. #include #include using namespace std; pair p; int main(){ // how to put in pair // p.first = 1; // p.second = 5; p = make_pair(1,5); printf("%d %d\n", p.first, p.sec..