🤖 Computer Science

[CS 면접 스터디] 1주차 - 자료구조

date
Sep 3, 2023
slug
cs-week1
author
status
Public
tags
Tech
summary
type
Post
thumbnail
updatedAt
Sep 3, 2023 12:51 PM
category
🤖 Computer Science

죠르디님의 CS 강의 내용 정리 Part.1

Array 배열

  • 바이트 단위로 할당됨.
  • 비트 단위 할당X
  • 크기 변경 불가. 고정되어 있음.

Dynamic Array 동적 배열

  • 데이터가 연속적으로 연결되어 있는 형태
  • 크기가 동적으로 변경될 수 있다. 근본적으로 배열 기반 구현 방식이다.
  • 파이썬에서의 배열은 기본적으로 동적 배열(dynamic array)의 형태를 띕니다.
notion image
notion image
처음 배열 선언할때 사이즈 지정 굳이X
static 배열은 동일하지만, initial 크기가 있기 때문에, 그게 꽉 차게 된다면 두배로 늘린다. … 반복
리사이징이 최대한 일어나지 않게 하는 것이 중요하다.
→ 언어마다 해당하는 솔루션은 다름.
  • 동적 배열의 크기를 조정하는 방식: 증가량을 줄여서 메모리 낭비를 줄일건지 vs 증가량을 늘려서 메모리 낭비가 조금 더 있는 대신 발생 횟수를 줄일건지의 차이
 

shift 연산

왼쪽으로 한칸씩 미루면 x2가 됨.
0111 (7)→ 1000 (14)

 

Part2

Linked List

메모리 상에서는 데이터가 불연속적으로 저장되어 있으나, 논리적으로 연속성을 구현한 선형 자료구조이다.
실제로 메모리 상에서 비연속적으로 데이터가 저장된다.
다음 값이 있는 주소를 계속 찾아야함.
시간 복잡도: O(N)
 
notion image
  • 링크드 리스트는 코테에서 많이 사용되지 않음.
 

Array vs Dynamic Array vs Linked List 총 비교

notion image

Queue 큐

  • 데이터가 연속적으로 저장되어 있는 선형 자료구조이다.
  • FIFO 구조

Deque 데크

  • 큐와 달리 끝부분이 두개 (끝부분에서 add, pull 가능)

Part.4

Stack 스택

  • 데이터가 연속적으로 연결되어 있는 선형 자료구조
  • LIFO 구조

Part.5

HashTable

다음주로…
면접에서 제일 많이 나옴…. 중요…. 메모….