반응형

CS강의 3

[자료구조] HashTable (HashMap, unordered_map(set))

김희성의 개발자 면접 cs 강의/ 스터디 HashTable (HashMap , unordered_map(set)) java는 HashMap map: [key,value] 저장 / set : key만 저장 Map과 Set은 key가 중복되는 데이터는 저장 불가 비선형 자료구조 일정 크기의 배열(버킷) 생성 후 key값을 hash함수를 통해 배열의 index로 변환하여, 해당 index에 해당 key값과 value값 저장 시간 복잡도 i번째 데이터에 접근(Access) : NONE / *O(N) (순서라는게 없음) X라는 데이터(Key)가 있는지 탐색 : O(1) X라는 데이터(Key)에 접근(Access) : O(1) X라는 데이터(Key)의 삽입/삭제 : O(1) Dictionary는 HashMap 으로..

Backend/CS 2024.02.23

[자료구조] Queue, Deque, Stack

김희성의 개발자 면접 cs 강의/ 스터디 Queue 데이터가 연속적(논리적)으로 저장되어있는 선형 자료구조이다. (메모리상에서 연속적x) FIFO 자료구조 Enqueue (Add) : Queue에 데이터 넣음 Dequeue (Poll) : Queue에서 데이터 꺼냄 시간복잡도 i번째 데이터 접근 O(N) 맨 앞 데이터 접근/삭제 O(1) 맨 뒤 데이터 추가 O(1) x 라는 데이터 있는지 탐색 O(N) Deque ( Double Ended Queue) 한 방향이 아니라 양쪽 끝에서 데이터 추가하거나 꺼낼 수 있는 자료구조 FIFO 구조라고 할 수 없음 시간복잡도 i번째 데이터 접근 O(N) 맨 앞/뒤 데이터 접근/추가/삭제 O(1) x 라는 데이터 있는지 탐색 O(N) queue.addFirst() , ..

Backend/CS 2024.02.22

[자료구조] Array, ArrayList

김희성 개발자 면접 CS강의/스터디 Array (배열) 배열은 메모리 상에서 데이터가 연속적으로 연결되어 있는 선형 자료구조이다. 크기는 고정되어 변경될 수 없다. (데이터의 삽입/삭제 불가능. 배열의 사이즈 변경 안 됨) 시간 복잡도 i번째 데이터에 접근/변경 O(1)(Random Access) x라는 데이터 탐색 O(N) Dynamic Array(List, ArrayList, Vector) Dynamic Array는 메모리상에서 데이터가 연속적으로 연결되어 있는 선형 자료구조. 크기가 동적으로 변경될 수 있으나 근본적으로 배열 기반으로 구현 여유공간 없으면 사이즈를 (2배 or 50%)씩 늘린다. 사이즈 늘리는 로직상 메모리 낭비 발생가능 리사이징 발생할 때마다 새로운 메모리 영역을 할당하고 데이터를..

Backend/CS 2024.02.21
반응형