반응형
Binary Search Algorithm 이진 검색 알고리즘 (참고 : 위키피디아)
더보기
위키피디아는 가급적 영어로 보길 추천한다. 정보의 양이 다르기 때문이다. 이진 검색 알고리즘 역시 영문판이 훨씬 설명이 상세하다.
이진 검색 알고리즘은 정렬된 배열을 전제하로 한다. 오름차순이던 내림차순이던 (보통은 오름차순) 배열 안의 엘리먼트들이 크기대로 정렬되어 있어야 한다는 것이다. log n의 시간 복잡도를 가진다. 정렬되어 있는 배열의 중간에 위치한 값과 찾고자 하는 타겟 숫자를 비교하여 작을 경우 작은 쪽 절반을 가지고 반복한다. 반대의 경우 큰 쪽 절반을 가지고 반복한다.
var binarySearch = function(arr, target) {
let count = 0;
let recurse = (arr, target) => {
let length = arr.length;
let mid = Math.floor(length / 2);
if (arr.length <= 1) {
return arr[0] === target ? count : null;
} else {
if (target === arr[mid]) {
count += mid;
return count;
} else if (target < arr[mid]) {
let newArr = arr.slice(0, mid);
return recurse(newArr, target);
} else {
let newArr = arr.slice(mid);
count = count + mid;
return recurse(newArr, target);
}
}
};
return recurse(arr, target);
};
URL params
http://monkeydeveloper.tistory.com/messages/:id
/:id
저 자리에 /3 이면, id = 3과 같다. 해당 id를 추출하고 싶을 땐, url.params.id 를 이용하면 된다. 이때 id는 당연히 string 이다. 숫자가 나오길래 당연히 숫자인줄 알았는데 스트링이여서 시간을 한참 낭비했던..ㅎㅎ
Express 이용하여 라우팅해주면,
const serverHandler = (req, res) => {
console.log(req.params.id) // id가 나온다
//중략
}
app.get(/messages, serverHandler);
app.get(/messages/:id, serverHandler);
Sementic URL 방식
쿼리 스트링을 표현방식에서
https://monkeydeveloper.tistory.com/form/id=3&name=monkey
보기 좋게 표현 한 방식
https://monkeydeveloper.tistory.com/form/3/monkey
반응형
'2. 우당탕탕 개발자 > 2-1. 공부기록' 카테고리의 다른 글
2020.08.19 Valid Parentheses 풀이 (0) | 2020.08.20 |
---|---|
2020.08.18 findUnsortedSubarray 풀이 (0) | 2020.08.19 |
13Mar2020 TIL (0) | 2020.03.13 |
11Mar2020 TIL (0) | 2020.03.12 |
09Mar2020 TIL (0) | 2020.03.09 |
댓글