본문 바로가기
비전공 개발자의 코딩 일지/북클럽 - IT잡학사전

[북클럽] IT잡학사전 TIL #ep.22~25

by 빅토리미 2023. 10. 12.

오늘 읽은 범위 : ep.22~25

 

책에서 기억하고 싶은 내용을 써보세요.

 

- 알고리즘이란 컴퓨터에게 내리는 지시 사항을 나열한 것. (ex. 등교 준비하기 알고리즘 -> 1. 일어나기 2. 가방 챙기기 3. 교복으로 갈아입기 처럼 프로세스가 있음!)

- 데이터를 보기 좋게 보관하는 것을 넘어서 찾기 좋게 제대로 보관해야 함. (자료구조의 자료는 데이터!)  프로그램의 목적이 다양하므로 알맞은 취지에 따라 자료구조의 방식을 달리해야함. 어떤 자료구조를 사용하는지에 따라 프로그램 속도가 빨라지거나 느려지기 때문. 

- 메모리는 컴퓨터의 기억 공간으로 휘발성 메모리와 비휘발성 메모리로 나뉨. 휘발성 메모리(ex. RAM)는 컴퓨터 전원을 껐을 때 저장한 값이 휙 사라지는 친구들, 비휘발성 메모리는 컴퓨터의 하드 드라이브 같은 친구들!

- 배열은 0부터 숫자를 매긴다. (컴퓨터는 0부터 숫자를 셈)

-배열 검색은 당장 몇 번째 데이터를 가져오라고 지시하는 배열 알고리즘 1단계와 달리, 모든 배열 박스를 뒤져서 해당되는 데이터가 있는지 없는지 찾아내는 과정이므로 검색은 읽기보다 시간이 많이 필요함.

- 배열은 맨 앞부터 차곡차곡 채워져 있어야 하므로 삽입과 삭제가 느리다.

- 알고리즘 시간 복잡도는 프로그램의 작업 속도가 얼마나 빠른지 측정하는 방법인데, 알고리즘의 속도를 표현하는 방법은 Big-O = "선형 검색 알고리즘은 배열의 길이가 N일 때 총 N번 검색하는 과정이 필요하다"라고 말하는 것보다 "선형 검색 알고리즘의 시간 복잡도는 O(N)이다"라고 말하는게 더 간단하므로 사용됨

- Big-O는 실행 단계에 영향을 주는 요소만 본다.

def print_first(arr):
    print(arr[0])

    
def print_first(arr):
    print(arr[0])
    print(arr[0])

//두 코드의 시간 복잡도는 같다.

- 선형 검색 : 배열의 맨 처음부터 검색을 시작한다. 배열의 길이가 길어지는 만큼 검색 시간도 길어진다.

- 이진 검색 : 배열의 중앙을 기준으로 검색을 시작한다. (단, 특정 알고리즘은 특정 자료구조에서만 사용할 수 있듯이, 이진 알고리즘은 데이터의 정렬이 모두 끝난 배열에서만 사용가능하다.)

 

 

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요.

 

- 오늘은 알고리즘과 자료구조에 대해 배워보는 시간이였다. 알고리즘이 정확히 뭔지 잘 몰랐는데, 이렇게 코딩과 여러 그림을 보고나니 좀 더 쉽게 이해할 수 있었다. 그리고 메모리와 알고리즘의 배열에 대해서도 배우게 되었다. 점점 흥미로워지는군 후후

 

내가 꼽은 최고의 TIL Top 3!

1. m13465님 ( https://nomadcoders.co/community/thread/8493)
3줄 요약과 읽은 범위, 책에서 기억하고 싶은 내용을 분리해서 써놓으신 게 다시 읽어보는 내모습을 상상하면서 엄청 효율적이라 좋다고 생각했다. 나도 앞으로 이 방법을 사용해야겠다!

2. taerin13님 (https://nomadcoders.co/community/thread/8260)
기억에 남기고 싶은 부분을 이미지와 도표를 사용해 표현하신게 인상깊었다.

3. aileen001님 (https://nomadcoders.co/community/thread/8498)
깔끔하게 잘 요약해주셔서 글을 읽고 이해하는데 수월했다.