본문 바로가기

CS3

스택(Stack) 과 큐(Queue) 이번에는 스택과 큐를 정리해본다. 두가지 다 많이 사용되는 자료구조로 차이점이 있다면 스택은 LIFO(Last In First Out) 구조로 후입선출. 즉 마지막에 들어온 것이 제일 먼저 나가게된다. like 프링글스 그러다보니 Javacript 배열의 push()와 pop() 메소드만 사용한다 생각하면 된다. push와 pop 메소드도 스택에서나온 이름이라고 한다. 그리고 또 하나 스택의 마지막 요소가 뭔지 알려주는 stackTop 메소드가 있다. top라고부르기도 한다. 주로 사용하는곳은 브라우저 히스토리 뒤로가기시 맨 처음 페이지가 아닌 맨 마지막 페이지(최근)로 이동하게된다. 자바스크립트로 만들어보면 class Stack { arr = []; push(value) { this.arr.p.. 2024. 7. 31.
연결리스트 Linked list 이번엔 자료구조 중 연결리스트에 대해 정리해본다. 연결리스트(Linked list)란? 연결리스트는 여러 개의 노드로 이루어져 있다. 각각의 노드는 객체로 value와 다음 노드가 뭔지 알려주는 주소를 가지고 있다.또한 연결리스트에는 데이터를 추가(add), 조회(search), 제거(remove) 기능이 있어야 한다. 예를 들어 1 -> 2 -> 3 -> 4 -> 5 라는 연결 리스트가 있다면 데이터는 1, 2, 3, 4, 5가 되겠고 ->는 주소가 된다.자바스크립트는 이것이 배열로서 구현이 되어 있다. 좀더 이해하기 쉽게 const arr = [1, 2, 3, 4, 5]에서1, 2, 3, 4, 5는 데이터!arr[0], arr[1] 등은 해당 데이터가 담긴 위치!.물론 push, splice 등으로 .. 2024. 7. 30.
시간 복잡도 최근 자료구조 및 CS 지식에 부족함을 느껴 이전에 학습했던 것들을 복습하며 추가적인 학습을 시작했다. 알고리즘에 기본이 되는 시간 복잡도(Big O)에 대해 정리해본다. 시간 복잡도란? const arr = [1, 2, 3, 4, 5]만약 4를 찾는다?좌측 부터 4번째이기에 작업량은 4컴퓨터는 첫번째부터 하나하나 확인한다.(사람도 마찬가지)n개의 배열에서의 작업량은 nBig O 최선의 경우Big θ 최선과 최악이 같을때Big Ω 최악의 경우O(1)O(logn)O(N)O(NlogN)O(N²)O(N³)등으로 나타낸다. 복잡도는 주로  빅오 표기법을 사용해 나타낸다. 최악의 경우 걸리는 시간을 표기하는 방법으로, 최대값을 표기한다.              O(N),  O(NlogN),  O(N²),     .. 2024. 7. 29.