[노개북] It 5분 잡학사전#6 - ep. 22~25
📌 오늘 TIL 3줄 요약
램은 데이터가 저장된 위치와 상관없이 일정한 접근 속도를 보장함
알고리즘과 자료구조는 하고자 하는 작업에 맞춰서 사용해야 함 - 잘못된 자료구조나 알고리즘을 선택하면 원하지는 않는 결과가 나오거나 비효율적이 될 수도 있음
알고리즘의 속도는 Big-O 표기법으로 표기하며 알고리즘을 수행하기 위한 절차 수에 영향을 주는 요소로 평가함
📆 TIL (Today I Learned) 날짜
2023-12-14
📚 오늘 읽은 범위
에피소드 22~25
📝 책에서 기억하고 싶은 내용
- 램은 데이터가 저장된 위치와 상관없이 일정한 접근 속도를 보장한다.
알고리즘과 자료구조는 하고자 하는 작업에 맞춰서 선택해야 한다.
예를 들어, 배열의 경우에는 배열의 맨 끝에만 저장하는 경우에는 굉장히 빠르다.
하지만 만약 맨 앞에 위치한 데이터를 삭제하거나 맨 앞에 데이터를 삽입하려고 하면 최대 N-1 번의 작업이 필요하다.
{1, 2, 3, 4} 에서 1을 지우면 2, 3, 4를 앞으로 한 칸씩 옮겨야 함
{1, 2, 3, 4} 에서 맨 앞에 0을 삽입하려면 1, 2, 3, 4를 한 칸씩 미뤄야 함
- 알고리즘의 속도를 표현하는 방법은 Big-O 표기법으로 알고리즘이 수행하는 최대 절차 수를 의미한다.
선형 검색 알고리즘 O(N) 순차적으로 요소들에 접근하여 원하는 값을 찾음
이진 검색 알고리즘 O(logN)
정렬이 끝난 배열에만 사용 가능
오름차순으로 정렬되어 있을 때 중간부터 시작해서 찾고자 하는 값이 크다면 오른쪽, 작다면 왼쪽으로 다시 검색
😀 오늘 읽은 소감 및 떠오르는 생각
알고리즘과 자료구조 내용을 읽다보니 갑자기 업앤다운이 생각났다. 처음 이진탐색을 배울 때는 생각도 못했는데 이미 우리는 이진 검색 알고리즘을 자연스럽게 사용하고 있었던 것이다.
알고리즘 문제를 풀다가 시간 초과로 계속 실패했던 경험이 있는데 그때 파이썬의 리스트를 사용하는데 맨 앞에 있는 값을 삭제하는 작업이 굉장히 빈번히 발생하는 문제여서 그랬었다. 그때부터 파이썬 기본 알고리즘들의 시간 복잡도나 구현체들의 특징들에 관심이 생겼었다. 역시 한 번 당해봐야 정신이 번쩍 드는 것 같다.
🔎 오늘 읽은 다른 사람의 TIL
https://nomadcoders.co/community/thread/8882
- 다른 분들의 TIL을 읽고 특징들을 정리해두셔서 참고가 됐다.
https://iserendi.notion.site/23-12-13-Wed-Challenge-Day-6-5a1497c2a00847e89ea128f63dc870bc
읽은 범위를 목차로 표현해둔 것이 보기 좋은 것 같다.
책을 읽고 이후에 할 것들을 정리해두신 것이 보기 좋았다.
https://omniscient-coconut-d1f.notion.site/TIL-2023-12-13-68f9783d5b864dc2ba7093d927b155a4
감상평에서 책에 EP20 마지막에
풀스텍이 되는 게 자유로웠다.
라는 문장을 보고 든 생각을 적어두셨다.내가 읽었을 때는 딱히 큰 감상은 없었고 그냥 지나갔었는데 그 부분을 읽으시면서 기존의 생각과 변화한 생각을 적어두신 것이 인상 깊었다. 각자가 가진 배경이 다르기 때문에 같은 글을 읽어도 다 다르게 생각한다는 것을 새삼 느꼈다.