개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
알고리즘은 초기 데이터 상태에 따라 처리 속도가 달라짐
해시 테이블 검색은 해시 충돌(hash collison) 처리에 의해 시간 복잡도가 O(1)이 아닐 때도 있음
클린 코드는 설명이 필요 없이 이해 되는 코드
TIL (Today I Learned) 날짜
2023. 11. 18
오늘 읽은 범위
26 ~ 29
책에서 기억하고 싶은 내용을 써보세요.
버블 정렬, 선택 정렬, 삽입 정렬 모두 같은 시간 복잡도를 갖지만 속도 차이가 있음
알고리즘은 초기 데이터 상태에 따라 처리 속도가 달라지므로 시간 복잡도가 같아도 평균적으로 빠른 알고리즘이 있을 수 있음
큐와 스택은 추상 자료구조 (abstract data type, ADT)
스택 : 위에서 데이터를 쌓고, 위에서부터 데이터를 뺀다. (LIFO)
웹 브라우저 뒤로 가기, 되돌리기 단축키 등
큐 : 위로 데이터를 쌓고 아래에서부터 데이터를 뺀다. (FIFO)
쇼핑몰 주문 처리 시스템 등
해시 테이블에서 검색 할 때 시간 복잡도는 O(1)
해시 충돌(hash collison)을 해결하는 방법
인덱스에 또 다른 배열을 넣어 선형 검색 -> O(1)이 아니게 됨 / 일반적인 시나리오에서는 O(1)
클린 코드 꿀팁 5가지 : 설명이 필요 없이 이해 되는 코드
의미 있는 변수, 함수 이름을 적절히 사용
함수 이름은 가급적 동사로 짓기 (함수는 한 가지 액션만 잘할 수 있으면 됨)
매개변수는 너무 많이 쓰지 마라
boolean 값을 인자로 보내지 마라 (함수가 boolean 값에 따라 두 가지 기능을 처리해야 함을 의미)
축약어를 쓰지 마라
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
웹에서 사용되는 스택과 큐의 예시를 보니 더 가깝게 와 닿는다.
알고리즘의 시간 복잡도에 대해 생각해보는 것도 재밌다.
'클린 코드' 읽고 싶은 책이었는데 시간 내서 읽어봐야 겠다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
시간 복잡도 계산 방법 알아보기
번아웃 극복하기