1. sort() .sort()는 JS의 배열의 기본 함수로 말 그대로 정렬기능을 제공한다. 하지만 우리가 알고있는 정렬과 조금 다르다. 나의 경우 알고리즘 문제를 풀다 데이터를 정렬하는 로직에서 이상한 점을 느꼈다. 이와 같이 [123,23,3] 을 정렬하면 [3,23,123]이 나와야하는데, [123,23,3] 이 나온다. 구글링을 해보니 JS에서 배열의 sort() 함수는 배열 안 데이터들을 모두 문자열이라고 생각하고 정렬을 한다는 사실을 알았다. 2. 해결법 위 MDN 문서를 참고해보면, sort()함수 안의 람다 함수로 올바르게 정렬 할 수 있다. 즉 sort() 함수에서 두 값을 비교 시 리턴값에 따라 return -1 => a를 b보다 낮은 인덱스로 정렬 a, b return 0 => a, ..
그래프를 탐색하는 방법은 DFS, BFS가 있다. 그래프란, 정점(node)과 그 정점을 연결하는 간선(edge)으로 이루어진 자료구조의 일종을 말하며, 그래프를 탐색한다는 것은 하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것을 말한다. 1. DFS (깊이 우선 탐색) 최대한 깊이 내려간 뒤, 더 이상 내려갈 곳이 없으면 옆으로 이동하여 같은 방법으로 탐색 모든 노드를 방문하고자 하는 경우 이 방법을 선택 BFS(너비 우선 탐색)보다 좀 더 간단하다는 장점이 있음 검색 속도 자체는 BFS(너비 우선 탐색)에 비해서 느림 스택 또는 재귀 함수로 구현 2. BFS (너비 우선 탐색) 최대한 넓게(인접한) 탐색한 후 더 이상 갈 곳이 없으면 아래로 이동하여 같은 방법으로 탐색 주로 두..
1. 이진(이분) 탐색 이진 탐색이란 검색 범위를 줄여 나가면서 원하는 데이터를 검색하는 알고리즘이다. 정렬되어 있는 리스트에서 찾으려는 데이터와 중간 위치의 데이터를 비교하며 탐색 범위를 절반씩 좁혀거며 데이터를 찾는 방법으로, 배열 데이터가 정렬되어 있어여만 사용할 수 있는 알고리즘이다. 시간 복잡도는 아래와 같다. 전체 데이터의 수를 N이라고 가정했을 때 1) 첫 번째 탐색 후 절반만 남아 남은 수가 \( \frac{N}{2} \) 개 2) 두 번째 탐색에서 다시 절반만 남아 남은 수가 \( \frac{N}{2} \) * \( \frac{1}{2} \) 개 3) 세 번째 탐색에서 다시 절반이 남아 남은 수가 \( \frac{N}{2} \) * \( \frac{1}{2} \) * \( \frac{1}..
1. 조합 조합의 경우에는 순서가 중요하지 않기 때문에 중복되는 것을 빼고 뽑는다. ex) 1,2,3,4 숫자를 이용한 조합 => [1,2], [1,3], [1,4], [2,3], [2,4], [3,4] 2. 순열 순열의 경우 순서가 중요하기 때문에 중복되는 값([a,b], [b,a]과 같은 값들)이 있어도 다 뽑는다. 순서를 고려한다는 것은 순서가 바뀌면 다른 것으로 취급함을 의미한다. ex) 1,2,3,4 숫자를 이용한 순열 => [1,2], [1,3], [1,4], [2,1], [2,3], [2,4], [3,1], [3,2], [3,4], [4,1], [4,2], [4,3] 3. 요약 4. 구현 아래 코드로 순열, 중복순열, 조합, 중복조합을 만들 수 있다. function getCombinatio..
1. JSX const element = Hello, world!; function App(){ return ( Helloreact ); } 위와 같은 코드는 아래와 같이 변환된다. (브라우저에서 실행 전 코드가 번들링되는 과정에서 바벨을 사용하여 일반 JS형태의 코드로 변환) function App(){ return React.createElement("div",null,"Hello",React.createElement("b",null,"react")); } * 바벨 ? 초기에는 ES6코드를 ES5코드로 변환해주는 컴파일러 역할을 하였고, 현재는 바벨을 이용해 JSX문법, TS 같은 정적 타입 언어, 제안 단계(정식문법이 아닌것들) 등을 사용 가능하게 해주고 있다. JSX는 JavaScript를 확장한..
- Total
- Today
- Yesterday
- 1급 함수
- 목표 일기
- next.js에 .gitignore가 적용되지 않을 때
- zustand
- 1급 시민
- React로 쓰로틀링 디바운싱 구현
- 매겨변수와 인자
- 자바스크립트 비동기 동작원리
- 가상스크롤
- vue
- 타입스크립트
- 함수형 컴포넌트
- programmers
- Virtual Scroll
- 시맨틱 웹
- debouncing
- redirects
- 호이스팅
- javascript
- array
- next.js 환경변수
- useRef
- react
- rewrites
- typescript
- 1급 객체
- redux
- 렌더링 속도 개선
- 자바스크립트 동작원리
- Next.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |