알고리즘 문제를 해결하다보니 이진탐색을 경우에 맞게 변경해야 하는 경우가 생겼다. 정렬된 배열에서 중앙값(median)을 비교하여 검색범위를 절반으로 줄여나가는 방식이다. 따라서 이진탐색은 O(log N)의 성능을 갖는다. 중복이 있는 배열에서 성분 중 가장 앞의 위치를 찾는 법 1. 값 중복 O 2. target이 모든 v에 대해 더 작은 경우 : 0 3. target이 모든 v에 대해 더 큰 경우 : v.size() 4. target이 v안에 없는 경우 : target보다 큰 가장 가까운 v의 인덱스 return 5. 중복된 값이 있는 경우 : 같은 값 중 가장 작은 인덱스 return 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 int solution(vector v, in..
Colored By Color Scripter™ 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 #include #include #include //int count; //int sw; void lcd_func(void){ PORTG = 0x01; /..
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798#include #include #include #define sei() {#asm("sei")}unsigned char led = 0b00000000;int status = 0;interrupt [2] void int0_func(){ // INT.0의 인터럽트 벡터는 2 if(status == 2){} else if(status == 3){ led = (led>>1)&led..
int0에서 Low level 검출 시 count 값을 하나 증가 count 값을 2진수로 led 표현 count값 초기값은 0, 최대값을 255로 정의 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 #include #include #include unsigned char led = 0; interrupt [2] void add_num(){ // INT.0의 인터럽트 벡터는 2 if(led == 255){ led = 0; PORTB = ~led; delay_ms(300); }else { led = led +1; PORTB = ~led; delay_ms(300); } } void main(){ EIMSK..
- const : 상수표 같은 읽기 전용 변수에 사용 : 혹 const 안붙인 상수 변수중 멤버 하나만 바꿔도, .const/.bss에 메모리 이중으로 잡히고 초기화때 복사도 함 : const char *A; A = "sample"(OK); *A = 'c'(X); A는 상수문자 포인터므로, A가 가리킨 *A는 상수문자이므로 변경불가 : char * const A = "sample"; A[1] = 'i'(OK); A++(X); A는 상수 (문자포인터)므로, 주소값이 상수로 변경불가 - volatile : 외부장치/인터럽트에 의해 변경되는 메모리, 딜레이를 위한 루프 등 일반적인 컴파일러가 변경할 코드를 못 건드리게 함 : 데이터가 휙 날아가거나 일시적이기 때문에 (volatile의 뜻), 컴파일러가 최적화..
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816..
C++ 스타일 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166..
동적메모리와 연결리스트 1.12345678910111213141516171819202122232425262728293031323334353637#include #include void insert_arr(int *arr, int size) { for (int i = 0; i num = input; if (*list == NULL) { // list가 초기값이면, *list = data; // list가 가리키는 주소에 data를 대입, list는 처음 데이터 } else { // list에 값이 있으면, (*prev)->link = data; // prev.link에 현주소 대입 } data->link = NULL; // 마지막에 해당하므로 NULL *prev = data;} void read_list(..
포인터 1.12345678910111213141516171819202122232425262728293031323334#include void set_proverb(char **q, int n) { static char * array[10] = { "Think like a man of action and act like man of thought.", "Courage is very important.Like a muscle, it is strengthened by use.", "Life is the art of drawing sufficient conclusions from insufficient premises.", "By doubting we come at the truth.", "A man that ..
과제 오목을 두는 프로그램을 만들어보자. 주어진 조건은 아래와 같다. 1. 화면에 바둑판을 그려라.2. 좌표를 입력받아 바둑판에 돌을 놓는 프로그램을 작성하라. (돌의 표시는 마음대로 해도 좋다)3. 검은돌과 흰돌을 번갈아 놓도록 수정하라.4. 바둑판에 놓이 검은 돌의 개수와 흰 돌의 개수가 출력되도록 수정하라. 순서도를 그려보자. 과제의 흐름도를 되새겨서 작성해본다. 1. 흑백돌, 승패여부를 나열했다. 12typedef enum target { WHITE = -1, EMPTY = 0, BLACK = 1 } TARGET;typedef enum game { WIN = 1, DRAW = 0, LOSE = -1 } GAME; // white 입장의 승패cs 2. 숫자보단 'A7'과 같은 형태로 작성하면 보기 ..
- Total
- Today
- Yesterday
- Next.js
- 이진탐색 #중복
- node.js
- vue.js
- vue
- Quasar
- alpine.js
- nosql
- nuxt.js
- svelte
- aws
- oracle
- Remix
- Angular
- Gatsby.js
- REACT
- SQLite
- PostgreSQL
- MySQL
- DevOps
- Azure
- RDBMS
- Cloud
- gcp
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |