본문 바로가기

분류 전체보기

Binary Search (이분탐색) 1. 알고리즘 탐색시간은 O(logN)이다. 정렬 알고리즘은 다음과 같다. left = 0 rigth = n - 1 while left < right: mid = (left + right) / 2 if arr[mid] < target: left = mid + 1 else: right = mid if(left == right) and (arr[left] == x): found = True foundpos = left else: found = False 더보기
결정 알고리즘 1. 이분 탐색 (binary search) O(n) =logN 으로 굉장히 빠른 탐색 방법 정렬 후에 사용가능 하다. function binarySearch(target, arr) { // binary search let index; // arr.sort((a, b) => a - b); let left = 0; let right = arr.length - 1; while (left < right) { let mid = parseInt((left + right) / 2); if (arr[mid] < target) { left = mid + 1; } else { right = mid; } if (left == right && arr[left] == target) { return left + 1; } } }.. 더보기
Deep Copy 배열을 그냥 지정해주면 얉은 복사가 된디. 다음과 같이 해결 가능하다. let copyArr = JSON.parse(JSON.stringify(arr)); // deep copy 만약 배열의 원소가 primitive type(int, string) 이면 다음과 같이 깊은 복사를 할 수 있다. let copy = arr.slice() 더보기
swap 1. tmp 변수 사용 let arr = [1, 2, 3] tmp = arr[0]; arr[0] = arr[2]; arr[2] = tmp; // arr = [3, 2, 1] 2. 최신문법 다중할당 let arr = [1, 2, 3] [arr[0],arr[2]] = [arr[2], arr[0]] 더보기
Array.includes() Array에 특정 요소를 포함하는지를 판별한다. python에서 x in Array 와 같은 기능... 당연히 JS에도 있었다. const array1 = [1, 2, 3]; console.log(array1.includes(2)); // expected output: true const pets = ['cat', 'dog', 'bat']; console.log(pets.includes('cat')); // expected output: true console.log(pets.includes('at')); // expected output: false 더보기
_ (underscore)의미 1. 언더바 또는 언더스코어 "_" 주로 함수에서 중요하지 않은 파라미터의 값을 나타낼 때 쓴다. (일종의 관습) // Arrow Function 1 const arrowFunc1 = () => { // ... } // Arrow Function 2 const arrowFunc2 = _ => { // ... } 더보기
Array.from() 1. Array.from()은 유사배열객체를 받아 배열을 만들어준다. Array.from(arrayLike[, mapFn[, thisArg]]) 2. 1~8 값을 갖는 배열 만들기 Array.from({ length: 8 }, (v, i) => i + 1) // [1, 2, 3, 4, 5, 6, 7, 8] 3. 시퀀스 생성기(range) const range = (start, stop, step) => Array.from({ length: (stop - start) / step + 1}, (_, i) => start + (i * step)); range(0, 4, 1); // [0, 1, 2, 3, 4] range(1, 10, 2); // [1, 3, 5, 7, 9] 더보기
isAlpha() 구현하기 1. isAlpha() 주어진 String이 알파벳인지 확인 하고 싶다. 해당하는 함수는 JS에는 없다. search() 함수와 정규식(regex)을 사용하여 구현할 수 있다. function isAlpha(word){ return word.search(/[A-Za-z\s]/) != -1 } 2. isNaN() 숫자인지 확인할때는 isNaN()을 사용하면 된다. Number.isNaM()으로 하면 오류방지에 좀 더 낫다. 더보기