TIL (23.09.02.토)

Day 09

📙 IT 5분 잡학사전
📑 오늘 읽은 범위: episode 26~29

✅ 세 줄 요약


  1. 기계적으로 측정한 시간 복잡도는 같아도 평균적으로 빠른 알고리즘은 있을 수 있다.
  2. 실생활에서 많이 사용되고 있는 추상자료 구조, 스택과 큐
  3. 해시 테이블은 키과 값을 짝지어 모은것.

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


26장. 정렬 알고리즘?

  • 버블 정렬(왼쪽 오른쪽만 보면서 정렬)
    : 2칸짜리 창문을 놓고 오른쪽으로 1칸씩 밀면서 왼쪽과 오른쪽을 비교하는 방식으로 정렬
    : 위 작업을 한 사이클이고, 모두 정렬될 때까지 반복실행
    : 시간복잡도 O(N^2)

  • 선택 정렬(하나를 콕 집어 가며 정렬)
    : 전체 데이터 중에서 가장 작은 데이터 또는 가장 큰 데이터의 위치를 따로 기억하는 방식으로 작업을 진행
    : 시간복잡도 (O(N^2))
    : 자리를 바꾸는 연산이 사이클당 1번씩만

  • 삽입 정렬(앞에 있는 데이터를 보면서 배치)
    : 앞에 있는 데이터를 보면서 배치하는 특징
    : 포인트는 교환이 아니라 밀어 넣음
    : 시간복잡도 (O(N^2))

=> 시간 복잡도는 같지만 속도 차이가 난다. 알고리즘은 초기 데이터 상태에 따라 처리 속도가 달라진다는 특징이 있다. 따라서 기계적으로 측정한 시간 복잡도는 같아도 평균적으로 빠른 알고리즘은 있을 수 있다.

27장. 스택, 큐?

스택과 큐는 실제로 존재하는 개념이 아니라 '추상 자료구조. 개발자의 상상 속 개념이다.

  • 스택의 규칙
    : 규칙1 - 위에서 데이터를 쌓는다.
    : 규칙2 - 위에서부터 데이터를 뺸다.
    : ex) 웹 브라우저의 뒤로 가기 버튼, 되돌리기 단축키(ctrl+Z)
  • 큐의 규칙
    : 규칙1 - 위로 데이터를 쌓는다.
    : 규칙2 - 아래에서부터 데이터를 뺀다.
    : ex) 쇼핑몰 주문 처리 시스템

28장. 해시 테이블?

: 키와 값을 짝지어 모은 것.
: 해시 함수는 검색할 때 쓰는 키를 숫자, 즉 인텍스로 바꿔주는 역할을 함

  • 해시 충돌(hash collison) 대처법
    : 같은 인덱스에 또다른 배열 넣기

29장. 개발자 필수 소양, 클린코드!

설명이 필요없는 코드. 코드를 읽기만해도 이 코드가 무슨 일을 하는지, 어떤 것을 의미하는지 물어볼 필요도 없이 스르륵 이해되는 코드.

  • 클린 코드 백서 5가지
    1. 의미 있는 변수, 함수의 이름 적절히 사용
    2. 함수 이름은 가급적 동사로!
    3. 매개변수는 너무 많이 쓰지 말것
    4. 불린값을 인자로 보내지 말기
    5. 축약어 쓰지 말기

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


확실히 클린코드가 중요하다. 최근에 몇달전에 클린코드를 신경쓰지 않고 내가 작성한, 정리되지 않은 코드를 보고 내가 알아보지 못한 경우가 종종 있었다. 누구나 알아볼 수 있도록 뚜렷하고 깔끔하게 작성하는 것이 무엇보다 중요하다고 생각한다. 나중에 코드를 알아보기도 편하고, 팀작업할때도 편리할 것 같다.

❔ 궁금한 내용은?


없음!

❗ 오늘의 미션!


인증 미션3

게더타운 속 니꼬쌤 찾기

profile
😆 I CAN DO IT!

0개의 댓글