07. [IT 5분 잡학사전] TIL Day 9

leewol·2023년 2월 26일
0

노개북

목록 보기
7/10

Day 9

2023년 2월 26일
에피소드 26 ~ 29

기억하고 싶은 내용

정렬 알고리즘

  • ① 버블 정렬 : 왼쪽, 오른쪽만 보며 정렬
    • O(N²)
  • ② 선택 정렬 : 전체 데이터 중 최소 OR 최대 값의 위치를 기억하며 정렬
    • O(N²)이지만 자리 바꾸는 연산이 사이클당 1번이므로 더 효율적
  • ③ 삽입 정렬 : 2번째 원소부터 앞에 있는 데이터들을 보고 밀어넣으며 정렬
    • O(N²)이지만 버블, 선택보다 효율적

큐와 스택

추상 자료구조(abstract data type, ADT)
문법이 따로 없고 데이터를 저장할 때 어떤 규칙을 부여하기만 하면 됨

  • 스택 : LIFO / 큐 : FIFO
  • 예시
    • 웹 브라우저의 뒤로가기, 되돌리기는 스택!
    • 쇼핑몰 주문 처리 시스템은 큐

해시 테이블

을 짝지어 모은 것

  • 선형 검색의 시간 복잡도는 O(N) 해시 테이블은 검색, 추가, 삭제 모두 O(1)

해시 함수

검색할 때 쓰는 키를 인덱스로 바꿔 줌

  • 해시 충돌 해결 예시 : 같은 인덱스에 또 다른 배열 (해시 후 선형검색)

클린 코드

설명이 필요 없는 코드!

의미 있는 변수, 함수명 적절히 사용
함수명은 가급적 동사 (+ 함수는 1가지 액션만)
매개변수는 가급적 적게 (어쩔 수 없다면 object 이용)
boolean 값을 인자로 보내지 말기
축약어 사용하지 말기

읽은 소감

예전에 프로젝트 하면서 매개변수가 엄청 많았던 적이 있는데 그때 받았던 피드백의 이유를 여기서 제대로 깨달은 것 같다. 그리고 클린 코드를 알게되면서 처음 구현 때부터 깔끔하게 써야겠다는 마음을 먹고 계속 고치고고치고고치고 하면서 구현을 했었는데.. 너무 거기에 집착하기 보다는 먼저 써놓고 다듬는 게!! 효율적이라는 생각도 들었다.

profile
간살간죽 개살개죽

0개의 댓글