개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
<예시>
효율적인 코드 작성을 위해 알고리즘과 자료구조를 배우자.
알고리즘의 속도를 표현하는 Big-O
자료의 형태와 구조에 따라 적절한 검색 알고리즘을 사용하자.
</예시>
TIL (Today I Learned) 날짜
2023. 01. 19.
오늘 읽은 범위
Ep22-25
책에서 기억하고 싶은 내용을 써보세요.
<Ep22. 자료구조와 알고리즘>
코드를 효율적으로 만들기 위해 자료구조와 알고리즘이 필요하다.
알고리즘: 컴퓨터에게 내리는 지시 사항을 나열한 것
자료구조: 데이터를 효율적으로 보관하고 찾기 위한 방법
<Ep23. 배열>
시간복잡도: 프로그램의 작업 속도가 얼마나 빠른지 측정하는 방법
휘발성 메모리 램(RAM)
배열은 램에 차례로 이어진 형태로 자료를 저장한다.
컴퓨터는 배열의 시작 주소와 길이를 알고 있기 때문에 읽는 속도가 빠르다.
배열은 데이터를 앞에서부터 저장하기 때문에 삽입과 삭제는 느리다. 상대적으로.
<Ep24. 알고리즘의 속도>
시간복잡도 O(N), O(log N) → 알고리즘으로 작업을 완료할 때까지 걸리는 절차 수 N 이용
Big-O는 실행 단계에 영향을 주는 요소만 본다.
<Ep25. 검색 알고리즘>
선형 검색 알고리즘: 배열 맨 처음부터 값을 찾는 방법
이진 검색 알고리즘: 중앙값을 기준으로 찾는 값이 중앙값보다 작으면 왼쪽, 크면 오른쪽
- 단, 배열이 정렬되어 있어야 한다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
내가 구상한 기능대로 프로그램이 동작할 수 있도록 코드를 작성하는 것도 중요하지만, 결국 코드 작성의 효율성을 위해 알고리즘과 자료구조에 대해 더 공부를 해야할 필요성을 느꼈다. 어떤 공부든 마찮가지이겠지만 개발 공부도 끝이 없는 듯. 그래도 중.꺾.마.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
배열이 RAM에 데이터를 저장할 때 주소가 적힌 상자 하나에 데이터를 하나씩 저장한다고 했는데 그 상자 하나에 저장할 수 있는 데이터의 크기가 있을까요? 예를 들어 상자 하나에 숫자 1, 참/거짓 True/False 도 가능하지만 길이가 어어어어어어엄청 긴 문자열이라면? aaaaaaaaaaa...zzzz 이렇게요!