일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 해시
- 백준
- Node
- hash
- 최소공배수
- 코테
- node.js
- 정렬
- 프로그래머스
- state
- 자료구조
- 알고리즘
- 정규표현식
- sort
- 병합 정렬
- CSS
- BOJ
- JS
- 브루트포스
- react
- 코딩테스트
- useState
- 합병 정렬
- 완전탐색
- 리액트
- 연결리스트
- 딥다이브
- 자바스크립트
- 기술면접
- JavaScript
- Today
- Total
목록Computer Science/자료구조 (3)
가치투자자
해시 (Hash) 해시는 무엇일까? 또 해시 테이블은 해시랑 같은것일까? 이에 대해 차근차근 살펴보고자 한다. 1. 배열 vs 해시 테이블 일반적으로, 데이터를 저장하고 활용하는 방법으로 배열(Array)을 떠올릴 수 있다. 아래의 예시를 보면, menu에 push를 통해 새로운 값을 추가할 수도 있고, for문 등을 통해 특정 값을 찾아볼 수도 있다. 즉, 배열은 특정 값을 찾기 위해 인덱스 0번부터 끝까지 탐색하는 선형 검색(Linear Search) 방식을 사용한다. 따라서 n개의 요소를 가진 배열을 순차적으로 검색하기에 시간 복잡도는 O(n) 이며, 살펴봐야 할 요소가 늘어날수록 시간은 무한히 늘어난다. const menu = [ { "icecream": 1000 }, { "coke": 1500 ..
연결리스트 (Linked List) 큐(queue)에 해당하는 알고리즘 문제를 풀다가 시간 복잡도 문제를 해결하기 위해 연결리스트에 대해 공부해보았다. 1. 연결리스트란? 연결리스트(Linked List) 는 index 번호를 사용하는 배열과 달리 연결(link)을 이용해 구현한 리스트를 말한다. 배열의 경우엔 아래처럼 index 번호로 값을 알 수 있다. 즉, index 번호와 값이 서로 연결되어 있다. const arr = ['a', 'b', 'c']; console.log(arr[1]) // index 1번의 값은 b 하지만 연결리스트는 각각의 값들이 서로 연결되어 있다. 아래의 사진을 보면, 10이라는 값에는 10이라는 data뿐만 아니라 10과 연결된 20의 주소(Link)까지도 담고 있다. 이..
스택(stack)과 큐(queue) 스택과 큐. 처음 들었을 땐 어려울 수 있지만, 쉽게 설명해보고자 한다. 1. 스택 (Stack) 스택(stack) 은 데이터를 아래에서 위로 쌓아올리는 구조를 말한다. 이때 데이터를 추가하거나 제거할 때 위에서부터 추가/삭제해야 하며, 이러한 자료구조를 LIFO(후입선출, Last-in, First-out)이라고 한다. 예로는 다음과 같은 것이 있을 수 있다. 브라우저창에서 뒤로가기 새로운 주소에 접속하면 그 방문기록이 히스토리 스택 아래에서부터 쌓일거고, 뒤로 돌아간다는건 맨 위에 쌓인 방문기록에서 아래로 돌아가는 것 Ctrl+Z로 실행 취소하여 직전 상태로 되돌아가기 역순 문자열 만들기 가장 마지막에 입력된 문자부터 출력하기 때문 수식의 괄호 검사 연산자 우선순위..