Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
[IT 5분 잡학사전] TIL EP26~29
by ek
#book_club
1년 전
528

오늘 TIL 3줄 요약

  • 알고리즘 방식은 여러가지가 있다.

  • 스택은 후입선출, 큐는 선입선출

  • 클린코드는 설명이 필요없는 코드


TIL (Today I Learned) 날짜

2023. 01. 21

오늘 읽은 범위

에피소드 26~29

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

  • 에피소드 26. 정렬 알고리즘이 뭐죠?

- 버블 정렬 O(N²) : 왼쪽, 오른쪽을 비교하여 자리를 바꾸는 방식

- 선택 정렬 O(N²) : 가장 작은 데이터 또는 가장 큰 데이터의 위치를 기억해서 위치를 바꾸는 방식

- 삽입 정렬 O(N²) : 앞쪽의 데이터와 비교해서 밀어넣는 방식

- 시간복잡도는 같아도 초기 데이터 상태에 따라 처리 속도가 달라질 수 있다. 

  • 에피소드 27. 스택, 큐가 뭐죠? 

- 추상자료구조, 기존 프로그래밍 언어의 문법으로 데이터를 저장할 때 부여하는 규칙

- 스택의 규칙 : 마지막에 들어간 녀석이 처음으로 나온다(last in, first out. LIFO)

예) 웹브라우저의 뒤로가기 버튼, Ctrl+Z

- 큐의 규칙 : 가장 먼저 들어간 녀석이 먼저 나온다(first in, first out. FIFO)

예) 쇼핑몰 주문 처리 시스템

실생활에서 스택과 큐의 규칙을 찾아보자!

  • 에피소드 28. 해시 테이블이 뭐죠?

- 키와 값을 짝지어 모은 것

- 배열형태의 해시 테이블과 해시함수의 세트

- 해시함수

1) 키를 인덱스로 바꿔 주는 역할

2) 해시함수가 글자수를 그대로 인덱스를 반환하도록 구성했다고 했을 때 '피자'는 글자수가 2개이니까 인덱스 2를 따라가면 값 12000을 찾을 수 있다.

그런데 같은 글자수를 가진 '치킨'도 있다면? 해시 충돌(Hash collison)이 발생하는데 이런 경우 같은 인덱스에 또 다른 배열을 넣는 방식 등으로 해결한다.

  • 에피소드 29. 개발자 필수 소양, 클린 코드!

- 코드를 읽기만 해도 이 코드가 무슨 일을 하는지, 어떤 것의 의미하는지 이해할 수 있는 코드이다.

1) 의미 있는 변수, 함수의 이름을 적절히 사용하라

2) 함수 이름은 가급적 동사로 짓고 함수당 1가지 역할만 하는 것이 좋다.

3) 매개변수는 너무 많이 쓰지 마라. (3개 이하로)

4) Boolean값을 인자로 보내지 마라. (참/거짓에 따라 2가지 일을 처리하게 되므로)

5) 축약어를 쓰지 마라.

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

스택, 큐의 규칙을 실생활에도 찾을 수 있다는게 재미있었다. 또 어떤게 있을까?

오늘 읽은 클린코드 5줄은 앞으로 매우 유용할 것 같다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

삽입 정렬 알고리즘의 포인트는 교환이 아니라 밀어넣기라고 했는데, 처음에 밀어넣기 할 빈 공간이 필요한걸까? 밀어넣기 할때 나머지 데이터의 위치는 바뀌지 않아도 되는걸까?

오늘 읽은 다른사람의 TIL

hyeond0님 TLI https://nomadcoders.co/community/thread/6721