개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
자료구조와 알고리즘은 팀 협업, 빠르고 효율적인 개발 위한 코드 작성 등에 있어 필수적이다.
배열은 RAM을 바탕으로 가장 간단한 자료구조이다. 읽기, 검색, 추가(삽입)·삭제의 사건이 발생한다.
시간복잡도는 프로그램의 작업속도가 얼마나 빠른지 측정하는 방법으로, 알고리즘으로 작업 완료할 때까지 걸리는 절차 수인 N을 이용해 빅오 표기법으로 표현할 수 있다.
TIL (Today I Learned) 날짜
2023.12.14.
오늘 읽은 범위
에피소드 22~25 까지
책에서 기억하고 싶은 내용을 써보세요.
자료구조의 방식은 다양한데, 프로그램의 목적이 검색, 시간, 크기 분류따른 데이터 사용 등을 목적으로 하는 경우 그에 따라 자료구조 방식이 나뉘게 된다.
배열(array)이란 컴퓨터의 휘발성 메모리로 RAM에 필요한 데이터가 저장, 동작되는 자료구조를 말한다. 배열은 읽기와 검색과 삽입(추가), 삭제 등이 가능한데 읽기는 순서 시작을 1이 아닌 0부터 하며, 배열을 읽는 속도가 1단계의 것으로 가장 빠르다. 검색 속도는 읽기보다 시간이 더 필요하고 그 종류도 선형검색을 포함해 다양하다. 배열에 데이터를 삽입하는 형태는 가장 마지막, 배열 중간, 데이터가 모두 채워져 있는 경우에 삽입하는 3가지로 나눌 수 있다. 배열에 데이터를 삽입하거나 삭제하는 속도가 가장 느리다.
알고리즘의 속도를 표현하는 방법으로, 시간복잡도의 Big-O 표기법을 이용할 수 있다. N은 '알고리즘으로 작업을 완료할 때까지 걸리는 절차의 수'이다. 이를 이용하면, 예를 들어, '선형 검색 알고리즘에서 배열 길이가 N일 때 총 N번 검색하는 과정이 필요하다'는 '선형 검색 알고리즘의 시간복잡도는 O(N)이다'라고 더 간단하게 말할 수 있다. Big-O는 실행단계에 영향을 주는 요소만 고려한다.
검색(Search) 알고리즘은 대표적으로 선형검색, 이진검색 등이 있다. 선형검색은 배열의 가장 처음부터 검색을 시작하여 그래프상으로 y=x의 형태를 보인다. 이진검색은, 데이터 정렬이 끝난 배열에서만 사용할 수 있으나 선형 검색보단 훨씬 시간 단축적으로 데이터를 검색할 수 있다. 배열의 중앙에서부터 검색을 시작해 중앙값보다 찾는 값이 작은지 큰지 판단하여 원하는 값을 찾을 수 있다. 그래프 형태는 y=log x와 같다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
해당 분야에 있어서는 개괄적인 내용이라는 점에서는 공통적이겠으나, 갑자기 내용이 상식선에서 전공으로 훅 뛰어들어간 기분이다. 그런데 그도 그럴게, 챕터를 다시 열어보니 컴퓨터 공학편이었다.😂 아직까지 자바스크립트도 제대로 배우지 않은 상태에서 자료구조와 알고리즘의 필요성을 절감할 수는 없지만, 한편으로는 그 시기가 빨리 왔으면 하고 바라고 있다.
오늘 읽은 다른사람의 TIL
Soojin님의 TIL(https://nomadcoders.co/community/thread/8869)
seul_g님의 TIL(https://nomadcoders.co/community/thread/8867)
공병휘님의 TIL(https://nomadcoders.co/community/thread/8866)