CS, OS, Network

자료구조와 알고리즘 중에서 자주 사용되는 것들

Veams 2023. 4. 18.

자료구조와 알고리즘은 컴퓨터 과학에서 가장 기초적이고 중요한 개념 중 하나이다. 자료구조와 알고리즘은 메모리를 효율적으로 사용하면서 데이터를 빠르고 안정적으로 처리하는 것을 목표로 한다. 

https://cheris8.github.io/python/DS-Overview/

자료구조

자료구조(Data Structure)는 컴퓨터가 데이터를 효율적으로 조작할 수 있도록 돕는 데이터 저장 및 연산의 총체를 의미한다. 다시 말해, 자료구조는 데이터를 구성하고 저장하는 방법을 다룬다. 데이터를 보다 쉽게 추가, 검색, 수정, 삭제할 수 있는 구조를 제공하고자 한다. 다음의 자료구조 형태를 이용하여 프로그래밍을 할 때 데이터를 보다 효율적으로 다룰 수 있다.

 

  • 배열(Array): 인덱스로 값을 저장하고 접근하는 가장 기본적인 자료구조로, 일련의 항목을 순서대로 저장한다.
  • 연결 리스트(Linked List): 각 항목이 다음 항목을 가리키는 포인터를 가지는 자료구조 이다. 노드를 연결하여 데이터를 저장하며, 삽입과 삭제가 빠르다는 장점이 있다. 각 항목은 메모리의 임의 위치에 저장된다.
  • 스택(Stack): 데이터를 쌓아 올리는 구조로, 마지막에 추가된 항목이 가장 먼저 제거되는 후입선출 LIFO(Last-In, First-Out) 자료구조이다.
  • 큐(Queue): 데이터를 줄세우듯이 순서대로 저장하는 구조로, 처음에 추가된 항목이 가장 먼저 제거되는 선입선출 FIFO(First-In, First-Out) 방식으로 데이터를 처리한다.
  • 해시 테이블(Hash Table): 키-값 쌍으로 데이터를 저장하는 구조로, 각 키를 해시 함수에 적용하여 고유한 인덱스로 값을 맵핑, 찾는다.
  • 트리(Tree): 노드와 링크로 구성된 계층 구조를 가지는 자료구조이다. 이진 트리(Binary Tree)는 자주 사용된다.
  • 그래프(Graph): 노드와 엣지로 이루어진 자료구조이다. 각 노드는 다른 노드와 연결된 엣지를 가질 수 있다.

 

알고리즘

알고리즘은 컴퓨터가 수행할 작업을 해결하기 위한 절차 혹은 방법을 의미한다. 다시 말해 입력값에 따라 출력값을 만들어내는 일련의 규칙들을 뜻한다. 더 간단히 말하면 어떤 문제를 풀기 위한 단계절 절차이다. 이 절차들은 문제 해결을 위해서 보다 명확하고 이해하기 쉬운 단계로 구성될 필요가 있다.

 

  • 정렬 알고리즘(Sorting Algorithm): 데이터를 정렬하는 알고리즘으로, 대표적으로 버블 정렬(Bubble Sort), 퀵 정렬(Quick Sort), 병합 정렬(Merge Sort) 등이 있다.
  • 검색 알고리즘(Search Algorithm): 데이터에서 원하는 값을 찾는 알고리즘으로, 대표적으로 선형 검색(Linear Search), 이진 검색(Binary Search) 등이 있다.
  • 그리디 알고리즘(Greedy Algorithm): 각 단계에서 최선의 선택을 하는 알고리즘으로, 대표적으로 다익스트라 알고리즘이 있다.
  • 동적 계획법(Dynamic Programming): 문제를 작은 부분 문제로 나누어 푸는 알고리즘으로, 대표적으로 피보나치 수열(Fibonacci Sequence) 문제가 있다.
  • 백트래킹(Backtracking): 모든 가능한 경우의 수를 탐색하면서 해를 찾는 알고리즘으로, 대표적으로 N-Queens 문제가 있다.
    이 외에도 다양한 자료구조와 알고리즘이 있으며, 문제의 종류에 따라 적합한 자료구조와 알고리즘을 선택해야 한다.

 

 

https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS8073601837 

 

개발자는 반드시 자료구조와 알고리즘을 배워야 할까?

'프로그래머라면 반드시 알고리즘을 배워야 하나요?' 언젠가부터 개발자 채용 과정에서 코딩 테스트를 보는 기업이 늘어나자 이런 질문이 줄어들었습니다. 알고리즘이 취업과 직결된 이후 알고

m.hanbit.co.kr

https://prgms.tistory.com/134

 

자료구조와 알고리즘, 왜 중요할까?

*본 글은 이선협 개발자의 강의 중 일부를 재편집한 글입니다. 자료구조와 알고리즘을 처음 시작하거나 왜 배워야 하는지 고민인 분들에게 답이 되었으면 합니다. 사용하는 언어가 JavaScript가 아

prgms.tistory.com

 

댓글