일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- storybook
- 리액트
- 자바스크립트
- 댓글달기
- nodejs
- TypeScript
- Vue.js
- ES6
- Vue
- express
- MySQL
- vuex
- JavaScript
- Wecode
- react
- CSS
- Vue transition
- sass
- HOC
- input
- 자료구조
- App.vue
- mapGetters
- scss
- jsx
- webpack
- v-html
- State
- 쉬운설명
- event
- Today
- Total
목록프로그래밍 관련자료/알고리즘 (7)
익명의 개발노트
두 수의 최대 공약수 구하기 리컬시브한 방법으로 구현하기. function uclide(m, n){ if(n === 0 ){ return m; } if(m % n === 0){ return n; }else if(m % n != 0){ return uclide(n, m % n); } } uclide(192,72);
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..
숫자의 합계구하기. 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..
getElementsByClassName의 원리 간단하다. MDN에서 기본 개념을 한번 보고 정리를 해보자. 결론은 클래스 이름을 가져온다. 그러면 어디서 가져올까? HTML이니깐 DOM에서 가져오겠지. document의 자식노드인 body를 찾으면 되고, body의 하위태그인 classList, childNodes를 찾으면된다. 정리하면, 1) body안에 있는 요소들 중에 className이 있는지 확인.2) 있다면 classList에 클래스 네임과 일치하는지 확인. 일치하면 새로운 배열에 담는다.3) 일치하는 배열중에 childNodes 존재하는지 확인 후 classList에 이름있는지 확인한다.4) 있으면 새로운 배열에 담는다.5) 배열을 반환한다. 기본 로직은 이렇다.