[노개북] IT5분잡학사전 DAY 7 - ep.22~25

danbi lee·2023년 9월 1일

개발자북클럽

목록 보기
6/21

TIL 3줄 요약

  • 어떤 자료구조를 사용하는지에 따라 프로그램 속도의 차이가 있다.
  • 자료구조의 방식이 다양한 이유는 프로그램의 목적이 다양하기 때문이다.
  • 선형 검색으로 9를 찾는다면 탐색은 모두 9번을 시도했을텐데 이진 검색으로 하면 3번만에 찾을 수 있다.

TIL 날짜

2023.08.31

오늘 읽을 범위

  1. 자료구조와 알고리즘은 필수라고?
  2. 배열이 뭐죠?
  3. 알고리즘 속도는 어떻게 표현할까?
  4. 검색 알고리즘이 뭐죠?

책에서 기억하고 싶은 내용

자료구조와 알고리즘

개발자가 되고 싶다면 결국에는 자료구조와 알고리즘을 공부하고, 자신의 코드에 적용할 수 있어야 한다.

코드를 효율적으로 만들기 위해

알고리즘 : 컴퓨터에게 내리는 지시 사항을 나열한 것
출근 준비 알고리즘 : 1. 기상 2. 씻고 출근준비 3. 버스시간 확인 4.가방싸기 5. 출발

  • 패스파인더 알고리즘:
    지도 앱에서 목적지까지 최대한 빨리 가는 방법을 알려주는 기능 구현을 위해 사용
  • 압축 알고리즘:
    이미지를 최소환으로 손상하면서 용량을 효율적으로 줄이기 위해 사용

데이터를 효율적으로 보관하고 찾기 위한 자료구조

어떤 자료구조를 사용하는지에 따라 프로그램 속도의 차이가 있음.
데이터 크기 기준, 인덱스 기준, 생성 시간 기준 등등...
자료구조의 방식이 다양한 이유는 프로그램의 목적이 다양하기 때문.

배열

시간 복잡도

프로그램의 작업이 얼마나 많은 단계를 거치는지 속도 측정.

메모리

컴퓨터의 기억 공간

  • 비휘발성 메모리: 컴퓨터 하드 드라이브
  • 휘발성 메모리: 컴퓨터를 끄면 사라지는 램(RAM)
    램은 데이터가 저장된 위치와 상관없이 일정한 접근 속도를 보장. 매우 안정되고 빠름.

배열의 원리

  • 배열은 램에 줄줄이 이어진 형태로 공간을 차지하고 있다.
  • 컴퓨터는 배열의 시작 주소와 길이를 알고 있다. 그래서 배열은 읽는 속도가 아주 빠르다.
  • 배열은 맨 앞부터 차곡차곡 채워져 있어야 한다. 그래서 배열은 삽입과 삭제가 느리다.

알고리즘

시간복잡도 Big-O 표기법

  • 시간 복잡도: O(N)
  • 상수 시간: 이미 실해 횟수가 고정으로 정해진 것 O(1)
  • 이차 시간: 중첩 반복문이 있을때 발생 O(N²)

선형 검색

가장 자연스러운 검색 방법으로 맨 처음 배열부터 검색

이진 검색

배열의 크기가 클때, 데이터 정렬이 끝난 배열에서만 사용.
배열의 중아에서 검색을 시작. 찾고자 하는 숫자보다 중앙값이 작으면 중앙값 기준으로 왼쪽 배열의 숫자는 볼 필요가 없으니 버리고, 나머지 숫자에서 중앙값을 새로 잡고 비교하면서 검색

오늘 읽은 소감

이전에 알고리즘 스터디를 했을땐 중간에서 도저히 진도를 나갈수가 없어서 포기를 했다. 알고리즘이 실무에 적용할일이 많은지 크게 와닿지가 않아서 쉽게 포기했던게 크다. 협업하기 좋은 효율적인 코드를 만들때 필요한거라고? 나는 멀었구나아... 에휴

profile
계속해서 보완중

0개의 댓글