코딩이야기/IT 5분 잡학사전

[IT5분잡학사전] DAY7. 에피소드 22 ~ 에피소드 25 : 자료구조와 알고리즘이 필요한 이유

Bingli 2023. 1. 20. 02:04

📙오늘 TIL 3줄 요약

  • 자료구조와 알고리즘은 효율적인 코드를 만들기 위해 필요하다.
  • 빅오 표기법 기억하기
  • 거대한 배열을 다룰 때는 이진 검색 알고리즘이 유용하다.

TIL (Today I Learned) 날짜 : 2023.01.19(목)


오늘 읽은 범위

에피소드 22 ~ 에피소드 25

03마당 코딩별 안내서 - 컴퓨터 공학 편 1

에피소드 22. 자료구조와 알고리즘은 필수라고?

에피소드 23. 배열이 뭐죠?

에피소드 24. 알고리즘의 속도는 어떻게 표현할까?

에피소드 25. 검색 알고리즘이 뭐죠?


책에서 기억하고 싶은 내용

에피소드 22. 자료구조와 알고리즘은 필수라고?

  • 자료구조와 알고리즘을 공부하면 코드를 효율적으로 만들 수 있다.
  • 알고리즘이란? 컴퓨터에게 지시 사항을 나열한 것
  • 패스파인더(pathfinder)알고리즘 : 목적지까지 최대한 빨리 가는 방법을 알려 주는 것
  • 압축(compression)알고리즘 : 이미지를 최대한 덜 손상하면서도 용량을 효율적으로 줄일 수 있는 알고리즘
  • 어떤 자료구조를 사용하는지에 따라 프로그램 속도가 빨라지거나 느려진다. → 목적에 따라 정리하는 자료구조를 쓰면 효율적이다.

에피소드 23. 배열이 뭐죠?

  • 시간 복잡도는 프로그램의 작업 속도가 얼마나 빠른지 측정하는 방법이다.
  • 휘발성 메모리인 램(RAM)은 데이터가 저장된 위치와 상관없이 일정한 접근 속도를 보장한다. → 보관된 데이터를 빠르게 찾을 수 있다.
  • 배열 특징 1 : 배열을 읽는 방법과 속도 → 배열은 0부터 숫자를 매긴다.
  • 배열 특징 2 : 배열을 검색하는 원리와 속도 → 배열에서 검색은 빠르지 않다. (선형 검색)
  • 배열 특징 3 : 배열에 데이터를 삽입하는 원리와 속도
    • 맨 마지막에 추가
    • 중간에 추가? 많은 작업 필요
    • 데이터가 꽉 차 있을 때 : 새 배열 만들기 → 복사하기 → 추가하기. 가장 느린 경우
  • 배열 특징 4 : 배열에서 데이터를 삭제하는 원리와 속도 → 삽입하는 원리와 비슷하다.

에피소드 24. 알고리즘의 속도는 어떻게 표현할까?

  • 빅오(Big-O)표기법 : 알고리즘으로 작업을 완료할 때까지 걸리는 절차 수 N을 이용해서 O(N), O(log N)과 같이 표현
  • 배열의 길이가 길어질수록 작업 속도는 제곱배로 느려진다.

에피스드 25. 검색 알고리즘이 뭐죠?

  • 선형 검색 알고리즘 : 배열 길이가 길어지는 만큼 검색 시간도 길어진다.
  • 이진 검색 알고리즘 : 배열의 중앙에서 검색을 시작한다. 거대한 배열을 다룰 때 효과적이다. 배열은 항상 정렬되어 있어야 한다.

오늘 읽은 소감 (떠오르는 생각)

  • 많이 들어보았던 용어들인데 정확하게 어떤 특징이 있는지 몰랐다. 책을 읽으면서 확실하게 어떤 특징이 있는지 알게 되었다.
  • 빅오 표기법. 기억하자.
  • 거대한 배열을 다룰 때는 이진 검색 알고리즘. 단 배열은 항상 정렬되어야 함.