전체 글 24

upper_bound, lower_bound

개념 upper_bound : n보다 큰 첫번째 수의 자리 (n-1 보다 작거나 같은 마지막 수의 자리 + 1) 1 2 3 3 3 4 5 5 6 ​ ↑ upper_bound of 4 lower_bound : n 보다 크거나 같은 첫번째 수의 자리 1 2 3 3 3 4 5 5 6 ​ ↑ lower_bound of 3 범위구하기 ​ 3 3 3 4 [ lower_bound(3), upper_bound(4) ) 코드 #include #include #include //lower_bound, upper_bound using namespace std; class pii { public: int first; int second; pii() {} pii(int f, int s) : first(f), second(s) ..

REST API tutorial

REST APIClient와 Server가 통신할 때에 http 포맷을 사용한다. 즉, Request와 Response 모두 http 포멧으로 온다.어디서?Windows, 웹페이지 : Restlet Client : chrome-extension://aejoelaoggembcahagimdiliamlcdmfm/restlet_client.htmlLinux, 콘솔 : curl, resty...Python Program : resquest module(아마도?)Requestresouce(url) : flickr api sitemethod(get/post/put/delete + host api's method) : get + searchparameters : api_key: blabla, text: lilly, f..

세그먼트트리 #level #2^l == 1<<l

세그먼트 트리를 공부했다. 펜윅트리도 공부하자! #1. 최대값과 최소값문제번호: 2357분류: 세그먼트트리 N = 10, M = 4 1 :level 0 ............................... 75 100 51 52 81 0 :level 375 30 100 38 50 51 52 20 81 5 0 0 0: level 4 0 1 2 3 4 5 6 7 8 9 ... 15 : 데이터인덱스 (0 ~2^4-1)10000 ...............................................11111 :어레이인덱스 (2^4 ~ 2^4+2^4-1) 1 103 56 98 10 코드#include #include #include #include using namespace std; int N..

다이나믹 프로그래밍 #dp #return

DP 매우 유용한 템플릿!자주자주 쓰쟈~~ #1. 행렬 곱셈 순서문제번호: 11049정답비율: 42.670%분류: 다이나믹 프로그래밍 int DP(int i, int j) {if (dp[i][j] != -1) return dp[i][j]; // return을 최상단에 위치시켜야 else{if (i == j) {dp[i][j] = 0;}else {int min = INT_MAX;for (int k = i ; k < j; k++) {int cand = DP(i, k) + DP(k+1, j) + arr[i][R] * arr[k][C] * arr[j][C];if (cand < min) min = cand;}dp[i][j] = min;}return dp[i][j];}}

ISA와 프로세서

바람의 나라는 어셈블리어로 코딩되었다고 한다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ바람의나라 하고싶당... (V3의 전신인 V1도 어셈블리어로 코딩되었다.)나도 할 수 있다, 어셈블리어..! 어셈블리어1. 어셈블리어는 기계어(이진 object) 1:1 대응.2. 문법: Intel문법, AT&T문법이 있음. (인텔 x86기준)3. 종류: 각 프로세서가 채택한 ISA(Instruction Set Architecture)에 의해 결정 x861) 정의 : 인텔 프로세서의 ISA인텔의 초기개발된 프로세서들이 86으로 끝났기 때문에 붙여진 이름 2) 종류: IA-16, IA-323) 확장: SIMD(80486 이후)4) 한계: 프로세스당 4GB(=2^32)메모리 까지밖에 지원하지 않는다. x64 (IA-64)1) 정의 : 인텔 프..

카테고리 없음 2017.05.10

1. 인라인 어셈블리

"IoT 보안을 위한 HW/SW 기법"-인텔 프로세서의 특수목적레지스터를 이용한 버퍼오버플로우 어택 탐지 1. IA-32(인텔 아키텍처, 32bit) 메뉴얼-Intel 프로세서중 32bit 프로세서의 아키텍처 (초기 32bit-펜티엄)-SIMD 지원-여기서는 i386을 주로 다룬다.i386 레지스터 (16개)8x 범용 레지스터(General-Purpose) (32bit)eax, ebx, ecd, edxesi, edi : 고속 메모리 복사에 쓰임ebp, esp : 스택 프레임 레지스터/ 스택 레지스터 (스택 베이스 포인터/ 스택 탑 포인터)6x 세그먼트 레지스터 (16bit) cs, ss, ds, es ,fs,gs1x 플래그 레지스터 eflags1x 인스트럭션 포인터 eip

카테고리 없음 2017.05.09

최소스패닝트리 #프림 #크루스칼 #그래프 #트리 #네트워크

스터디를 위한 준비! 그래프, 트리, 네트워크 대략적 차이트리 : Circuit이 없는 그래프 그래프 : 노드와 엣지로 구성. directed/undirected, weighted edge/unweighted edge 등등 여러 종류가 있다.네트워크 : 그래프와 비슷. 최소스패닝트리, Minimum Spanning Tree'최소신장트리', '최소비용신장트리' 등으로도 불린다.1. 방향성이 없는 Edge를 갖는 그래프에 한해서,2. 모든 노드들이 연결되는 Edge Set을 만드는 것이다. 프림 알고리즘, Prim매우 단순한 그리디 알고리즘. 1. 임의의 V를 골라서 Set을 만든다.Loop (n-1회) { 2. Set에 연결된 엣지들 중 가장 작은 것을 고른다.(pq)3. 해당 노드를 Set에 포함하고, ..

이진트리 #Traverse #DFS

이제 20%대 문제도 왠만하면 잘 풀리는 것 같다.조금 더 열심히 해서 20%대 문제 수월하게 풀 수 있게 되면 10%대 문제들도 많이 도전해 봐야겠다. 이진트리한 노드가 최대 2개의 자식 노드를 가지는 트리 이진트리 탐색(Binary Tree Traverse)in-order : 왼쪽 자식노드, 내 노드, 오른쪽 자식노드 순서로 방문한다.pre-order : 내 노드, 왼쪽 자식노드, 오른쪽 자식노드 순서로 방문한다.post-order : 왼쪽 자식노드, 오른쪽 자식노드, 내 노드 순서로 방문한다.level-order : 내 노드, 내 노드로부터 깊이 1인 노드들, 내 노드로부터 깊이 2인 노드들, ... , 내 노드로부터 깊이 N인 노드들 (N: 나(트리)의 깊이) #트리의 높이와 너비문제번호: 225..

라이브러리란? STL이란? #boost

#include #include 평소 코딩할 때 쓰는 갖가지 유용한 STL 기능들, 어떻게 제공되는 것인지 알아보자. 라이브러리란? 0. 이진코드로 컴파일되어있는 유용한 소스코드들.1. 코딩에 유용한 문법들을 모듈화하여, 사용자에게 제공해준다. 2. Encapsulation하지 않고, 즉 클래스로 구현하지 않고 알고리즘과 자료구조를 각각 제공해주는 형태를 띈다.확실히 소스 코드 사이즈도 줄고 유연하게 쓸 수 있으나, 불안정성이 있다고 한다.3. STL은 미국에서 표준화한 Standard Template Library로 정적 라이브러리에 해당한다.4. boost 등 유용한 라이브러리들을 사용하고 싶으면 다운로드 받으면 된다. 와닿지 않는 부가지식들1. 동적라이브러리(dll), 정적라이브러리(lib)가 있는..