일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Vue
- webpack
- v-html
- vuex
- input
- State
- 리액트
- TypeScript
- react
- 자료구조
- Vue transition
- 자바스크립트
- CSS
- MySQL
- HOC
- Wecode
- 댓글달기
- JavaScript
- express
- App.vue
- 쉬운설명
- ES6
- storybook
- nodejs
- event
- Vue.js
- mapGetters
- jsx
- scss
- sass
- Today
- Total
목록프로그래밍 관련자료 (21)
익명의 개발노트
function repeatString(string, n) { var newString = ''; var i=0; while(i < n){ newString = newString + string; i++; } return newString; } function repeatString(string, n){ if(n === 0){ return ''; } if(n ===1){ return string; } return string + repeatString(string, n-1); } repeatString('dog',5);
데이터를 해시함수를 거쳐 테이블에 정렬하는 방식. 해시함수는 +,-,*,/,% 등등 사용됨. 해시함수로 인덱스를 구분함. 이런 일련의 과정을 Hasing이라고 지칭한다. 이런식으로 하다보면 발생하는 문제가 생기는데, 대부분의 문제가 해시충돌 현상이 발생한다.(인덱스가 겹치는 현상) 해시충돌값을 해결하기 위한 방법으로는 Chaining, Linear Probing, Resizing 방법이 있다. 1. Chaining 방법은 분리연결법? 해석은 참 거지 같다. 눈에 들어오지도 않는 어려운 용어... 값부분에 Linked List로 구현하는 방식이다. 이런식으로 저장을 해서 충돌을 피하는 방식이다. 값찾으려면 인덱스 값 타고 들어가서 Linked List의 값을 찾는 방법을 써야한다. 2번째는 Linear P..
큐는 흔히들 이야기하는 선착순, 카페 줄서기, 은행줄서기를 생각하면 이해하기 쉽다. 먼저 들어온 값이 먼저 나가는 것으로 , FIFO(First in First Out)으로 볼 수 있다. 큐는 프로세스 스케줄링, 네트워크 패킷처리, 프린트 대기열, 대부분의 입출력 등에서 사용된다. 큐에서 흔히 사용되는 ADT(Abstract Data Type)는 Enqueue(삽입), Dequeue(값 빼기), Size(크기확인), Empty(비었는지 확인), peek (맨 앞값 확인) 가 있다. Psuedo 코드 QueueArr[10] 생성 tail =0 생성(꼬리) head =0(맨앞) 생성 Enqueue(data) 함수 생성 tail이 큐배열의 길이보다 크면 "큐 오버플로우" 메시지 출력 그 반대면 배열에 data..
메모리 안의 데이터를 효율적으로 처리하기 위한 자료구조 FILO(First in Last Out), LIFO(Last in First Out) 의 의미. 구현방법은 두가지가 있다. 1. 정적인 1차원 배열 : 구현하기 쉬우며, 사이즈를 미리 알아야한다. 2. Dynamic Array : 리스트이며, 사이즈를 몰라도 되지만, 구현하는데 어렵다. 위 그림이 대표적인 스택의 모습이다. 또한 우리가 살아오면서 스택을 몸소 실천하면서 살아왔다. 맨 아래부터 차곡차곡 엎드리고 사람을 쌓으면, 위에있는 사람먼저 내려와야 안전하다. 더이상 설명은 안해도 이해할 것으로 믿는다. ADT(추상 데이터 타입)은 push, pop, peek, isEmpty가 있다. Pseudo 코드 stack arr[10] 생성 Top = 0..
Linked List는 노드값에 데이터와 헤더값을 기본으로 데이터를 찾아가는 방식임. 데이터(실제 데이터 공간), 헤더(주소 데이터공간)을 의미. 헤더에는 내 앞에 있는 노드의 주소를 저장한다. EX) 선생님이 철수에게 "이 화분 누가 깨뜨렸어?" 라고 묻자. 철수는 영희를 가리키며, "영희가 그랬어요." 영희는 "빡구가 그랬어요" 라며 손가락으로 가리킨다. 이때 손가락 부분이 헤더라고 보면 이해하기 쉽다. 장점으로는 삽입, 삭제가 많은 데이터 리스트에 사용한다. 특징은 데이터 중간에 삽입, 삭제 가능하며, 동적어레이로 크기 조절이 자유롭다. 따라서 메모리 공간을 절약할 수 있음. 하지만, 계속 단서를 찾아가기 때문에 접근 속도가 느리다. 새 Node[DATA, HEAD] 생성 LinkedList 만들기..
컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리 , 저장을 의미하며, 데이터 값의 모임. 데이터간의 관계, 데이터에 적용할 수 있는 함수나 명령을 의미함. 자료구조에는 여러종류가 있으며, 직접 구현해 보는 것이 가장 중요함. 각 자료구조의 본질과 컨셉을 이해하는 것이 중요하다. 자료구조의 기본적인 구성 1. insert : 데이터를 어떻게 저장할 것인가? 2. Search : 데이터를 어떻게 탐색할 것인가? 3. Delete : 데이터를 어떻게 삭제할 것인가? 일반적으로 자료구조는 단순구조, 파일구조, 선형, 비선형구조로 나뉘며, 선형구조(Linear)와 비선형구조(Non-Linear)를 말한다. 선형구조 : Stack, Que, Linked List, Arrays, Deque ..
Complexity (=복잡도) Time complexity와 Space complexity가 있다. 복잡도를 설명하기위해서 Big-O notation을 이용한다. Big-O notation : Complexity를 설명하는 도구, 근사치를 가지고 이야기를 하기때문에 표기법 O(n) 이런식으로 표기된다. 1. Time Complexity. : 문제를 해결하는데 걸리는 시간과 입력의 함수 관계를 나타냄.(알고리즘에 사용되는 연산 횟수의 총량) 1) O(1) : 언제사용 ? array lookup, hash table insert, 하나의 키에 접근하는 방식. 2) O(logn) : 언제사용 ? binary search 할 때 3) O(n) : 언제사용? 배열을 포문에 한번 돌릴때. 4) O(nlogn) :..
숫자의 합계구하기. var output = sumDigits(1148);console.log(output); // --> 14 var output = sumDigits(-316);console.log(output); // --> 4 앞이 양수이거나, 음수일때 숫자의 합 구하기. 양수인 경우 그냥 다 더하면 된다. 음수의 경우, 양의 숫자가 어디서 시작하는지 확인해야한다, 1. 숫자인덱스[2]부터 양수다. 2. 숫자를 문자열로 변환한다. 3. 음수일때의 값을 미리 sum에다가 만들어 저장한다.. 4. 저장된 sum에다가 나머지수를 더해준다. 5. 최종값 리턴한다. var sum =0; var positiveNumStartIndex =0; var numToString = 숫자값.toString(); if(숫자값
알고리즘 객체에서 배열전환하기. { name: 'Holly', age: 35, role: 'producer'} 이런 객체의 값을 [['name', 'Holly'], ['age', 35], ['role', 'producer']] 이렇게 배열로 변경하기. 1. 객체의 key값을 배열 인덱스의 0번째에 넣어야함.2. 객체의 값을 인덱스의 1번째에 넣어야함. 마지막 값을 넣을 배열을 하나 만들어주자. var newArray =[]; 각 배열의 키,값을 순서대로 먼저 작은 배열에 넣어보자. for(var key in obj){ var smallArr =[]; smallArr.push(key); smallArr.push(obj[key]); //최종 배열안에 작은 배열을 넣자. newArray.push(smallAr..
JSON.stringify(obj)의 특징을 MDN에서 한번보자. 특징은 obj값을 문자열로 바꿔준다. 그럼 어떻게 바꿔주냐?! 1. 값이 객체나 배열이 아닌경우 1) obj가 number 인지, boolean 인지, null인지, string인지 확인해서 문자열로 바꾼다. 2. 값이 배열인 경우 1) 배열이 존재하지 않으면 빈배열을 반환한다(문자열된 빈배열) 2) 배열일 경우 배열안에 값이 number인지, string인지, 배열인지, 다른 값인지 확인해서 새로운 배열에 넣어준다. 3) 배열도 문자열로 바꿔줘야한다. "["+arr+"]"; 이런식 3. 값이 객체인경우 1) 객체의 속성이 존재하지 않으면 빈 객체를 반환(문자열된 빈객체) 2) 객체의 값이 string 인지, number인지, boolea..