🔥 Today
-
[ByteDegree]
react
- 7주차 Quiz : 9/10 pass ✅
- Redux Middleware 강의노트
🔨 자료구조
-
Array 배열
- 정적
-
List 단일연결리스트, 이중연결리스트
- 동적
- 싱글링크드리스트 : 노드안에 링크 1개, 단반향 진행 리스트
- 더블링크드리스트 : 노드안에 링크 2개, 양방향 진행 리스트
- 황형링크드리스트 : 마지막 노드가 첫번째 노드를 가르켜서 계속 진행할 수 있게 만들어진 리스트
-
Array vs List : 유리한 점 비교
- 인풋 사이즈 모를때, 메모리 할당 효율 : 어레이 < 리스트
- 데이터 하나당 추가적으로 소모되는 메모리 양 : 어레이 > 리스트 => 링크하나당 4바이트, 데이터가 많을 수록 리스트 불리
- 중간 데이터 추가, 삭제 효율성 : 어레이 < 리스트 => 1~100사이중 50을 삭제하는 경우 리스트 = 49노드와 51 노드를 바꾸기 어레이 = 51부터의 인덱스를 한칸씩 전부 땡겨와야함
-
Stack 스택
- 메모리 안 데이터들을 효율적으로 관리할 수있게 도와주는 자료 참조 방식 중 하나
- LIFO 마지막에 들어온 데이터가 가장 먼저 나가는 방식
- 스택을 구현하는 대표적인 방법
- 정적 1차원 배열 : 구현 쉽다. But, 들어올 크기를 미리 알아야 한다.
- 동적 연결 리스트 : 들어올 크기를 몰라도 된다. But, 구현이 배열보다 어렵다. 메모리를 좀 더 사용해야한다.
- 주요함수 : push, pop
- top, peek : 제일 최근에 들어간 데이터, 최상위 데이터를 가리킨다.
-
해시테이블
- 데이터를 관리/유지하는 자료구조, 리소스를 이용하여 속도에 중점
- 충돌대처 : chaining(같은 자리에 리스트 등을 이용해서 연결해서 같은 공간에 집어넣음), linear probing(해당 공간의 다음자리로 집어넣음) resizing(테이블이 할당된 공간을 다써서 테이블을 늘린다음 다시 재정렬하는것 )
-
큐
- 메모리 안 데이터들을 효율적으로 다루기위해 만들어진 데이터 자료 참조 방식 중 하나
- FIFO : 제일 먼저 들어온 값이 제일 먼저 나가는 자료구조
- 큐를 구현하는 대표적인 방법
- 정적 어레이 fixed array : 구현이 쉽다 But, 고정된 큐의 크기
- 동적 어레이 linked list : 자유로운 큐의 크기, But, 구현이 어렵다
- 주요함수 : enqueue,dequeue
🔑 key point
- 순서가 보장되는지
- 중복된 데이터가 들어갈 수 있는지
- 검색할 때 얼마나 효율적인지
- 원하는 기능에 따라서 수정할 때 얼마나 효율적인지
🔨 알고리즘
- 제한된 공간과 시간속에서 데이터를 어떻게 처리할 것인지 정의해놓은 로직 (= 주어진 인풋으로 정의된 계산을 수행하고 아웃풋, 결과값을 내는 것) (= 주어진 데이터를 검색 or 정렬 or 총점 을 구하는 등 계싼을 할 수 있음)
Big O
- 동일한 알고리즘의 로직으로 인풋의 사이즈가 점점커질수록 시간이 얼마나 더 많이 걸리느냐를 정의한 시간 복잡도를 나타내고 표기하는 방법
🔑 key point
- 인풋의 사이즈가 커질수록 Big O가 어떻게 변화하는지
- 공간과 시간의 복잡도는 어떤지
- 어떤 자료구조를 이용해서 이 알고리즘을 쓰는게 좋은지
🔥 To Do
- [ecommerce-website] ⏩
- [부스트코스] project B
- [Algorithm]
javaScript
매일 1문제 이상 풀기 - [부스트코스] CS 자료구조, 알고리즘 강의
- [ByteDegree]
React
7주차 - Redux, 리덕스 미들웨어 ✅- 7주차 Quiz : ~ 01/11 ✅
- Mini Project / Part2 / 지출 기록 서비스 구현 : 12/21 ~ 01/04
- 7주차 Quiz : ~ 01/11 ✅