Basic/코딩기초

[코딩기초] 자료구조, 알고리즘, 운영체제

코딩공대 2023. 2. 21. 01:52
728x90

1. 자료구조(Data Structure)

데이터 값의 모임이라고 한다. 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현한 것. 

2. 자료구조를 배우는 이유?

  • 데이터를 체계적으로 저장하고, 효율적으로 활용하기 위해서 자료구조를 사용한다.
  • 특정한 상황에 놓인 문제를 해결하는 데에 특화되어 있다.

3. 필수 자료구조 8개

  • 배열(Array)
    • 동일한 타입의 테이터들을 저장하며, 고정된 크기를 가지고 있다.
    • 인덱싱이 되어 있어서 인텍스 번호로 데이터에 접근할 수 있다.
    • 연속된 메모리 공간에 존재한다.
    • 스택(stack) 영역의 메모리 할당이다. 

  • 링크드 리스트(Linked List)
    • 각 데이터 시퀀스가 순서를 가지고 연결된 순차적 구조이다.
    • 동적인 데이터 추가, 삭제에 유리하다.
    • 특정 데이터를 조회하려면 처음부터 탐색해야한다.
    • 힙(heap) 영역의 메모리에 할당된다.

  • 스택(Stack)
    • 순서가 보존되는 선형 데이터 구조
    • 가장 마지막 요소부터 처리하는 Last In First Out(LIFO)방식이다.
    • 예를들면, 특정 사이트에 들어가서 뒤로가기, 앞으로가기 버튼을 생각하면 된다.

  • 큐(Queue)
    • 가장 먼저 입력된 요소부터 처리하는 First In First Out(FIFO)방식이다.
    • 예를들면, 고속도로 톨게이트에서 먼저 들어간 차가 먼저 나가는것을 생각하면 된다.

  • 해시 테이블(Hash Table)
    • 해시함수를 사용하여 변환한 값을 인덱스로 삼아 키(Key)와 데이터(Value)를 저장하는 자료구조이다.
    • 데이터의 크기에 상관없이 추가, 검색에 효율적이다.
    • Key값으로 그에 맞는 Value값을 찾는다. 그러므로 Key값과 Value값을 쌍으로 저장한다.

  • 그래프(Graph)
    • 연결관계를 표현하는 자료구조이다.
    • 선형 자료구조나 트리 자료구조로 표현하기 어려운 관계를 가지는 원소들을 표현하기 위한 자료구조이다.
    • directed그래프는 일방통행이고, undirected그래프는 양방향이다.

  • 트리(Tree)
    • 그래프가 계층적 구조를 가진형태이다.
    • 최상위 노드를 가지고 있다.
    • 상위 노드를 부모(Parent)노드, 하위 노드를 자식(Child)노드라고 한다.

  • 힙(Heap)
    • 이진트리(Binary Tree)
    • 최소 힙 : 부모의 키 값이 자식의 키 값보다 작거나 같다.
    • 최대 힙 : 부모의 키 값이 자식의 키 값보다 크거나 같다.

 


4. 운영체제(Operation System)

사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다.
우리가 일반적으로 컴퓨터를 사용하면서 실행한 모든 프로그램들은 운영체제에서 관리하고 제어한다.
  • 운영체제의 목적 및 기능
    • 운영체제의 주된 목적은 컴퓨터의 하드웨어를 관리하는 것이다.
    • 사용자에서 편의를 제공하는 목적이다.
    • 시스템의 각종 하드웨어와 네트워크를 관리 및 제어한다.
    • 시스템의 오류를 검사 및 복구한다.
  • 운영체제의 유형 및 하는 일
    • 어플리케이션은 특정 운영체제에 맞춰서 만든다. 그러므로 다른 운영체제에서 수행할 수 없다.
    • 어플리케이션의 요청에 따라 각 기능들이 수행하여 적절히 자원을 분배한다.

 

 

References