반응형
TIL (Today I Learned) 날짜
2024년 03월 23일 토요일
오늘 읽은 범위
EP.26 ~ EP.29
책에서 기억하고 싶은 내용
EP.26 정렬 알고리즘이 뭐죠?
정렬 알고리즘 (Sorting)
1. 버블 정렬 (bubble sort)
2. 선택 정렬 (selected sort)
3. 삽입 정렬 (insertion sort)
버블 정렬
연속된 두 인덱스의 값을 비교하며 정렬하는 과정
버블 정렬 한 사이클이 끝나면 가장 큰 수가 가장 끝에 위치한다.
다음 사이클에서는 가장 큰 수인 마지막 수를 제외하고 남은 인덱스 값으로 버블 정렬한다.
=> 시간 복잡도 O(N^2)
선택 정렬
가장 작은 데이터나 가장 큰 데이터의 위치를 기억하는 방식
선택 정렬의 한 사이클이 끝나면 가장 작은 수가 가장 앞에 위치한다.
다음 사이클에서는 그다음 인덱스값부터 정렬하면 된다.
=> 시간 복잡도 O(N^2), 자리를 바꾸는 연산이 사이클 당 1회로 버블 정렬보단 효율적
삽입 정렬
앞에 있는 데이터를 보면서 배치하는 정렬, 교환이 아닌 넣기
맞는 위치에 삽입하면 한 사이클이 끝난다. 사이클마다 한 번의 밀어 넣기 작업을 진행한다.
=> 시간 복잡도 O(N^2), 위의 두 정렬 방식보다 속도가 빠르고 효율적
시간 복잡도는 같은데 속도 차이가 생기는 이유
시간 복잡도를 단순히 측정했을 때는 시간 복잡도가 같다.
초기 데이터 상태에 따라 데이터의 처리 속도가 달라진다.
https://velog.io/@yeonise/%EC%A0%95%EB%A0%AC-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98
IT 쿠키상식: 개발자 책상 위 필수 아이템
역시 돈을 쓴 만큼 열심히 하는 것 같다.
키보드에 관심이 많이 생겨서 기계식 키보드, 무접점 키보드 등 많이 찾아보고 있다.
돈 벌어서 더 좋은 장비를 갖고 싶고 더 좋은 장비로 돈을 더 벌고 싶어서 선순환이 생긴다.ㅋㅋㅋ
가격 생각 안 하면 나도 맥북 쓰고 싶다.
오래 앉아있다 보니까 의자나 책상은 당연하고 방석이나 팜레스트 등 컴퓨터를 건강하게 오래 사용할 수 있게 하는 제품들에도 관심이 많다.
EP.27 스택, 큐가 뭐죠?
추상 자료구조 (Abstract Data Type)
데이터를 저장할 때 부여하는 규칙
스택 (Stack)
1. 아래에서 위로 데이터가 쌓인다.
2. 위에서부터 데이터를 사용한다.
LIFO (Last In First Out)
- 웹 브라우저 뒤로 가기 기능, 되돌리기 기능
큐 (Queue)
1. 아래에서 위로 데이터가 쌓인다
2. 아래부터 데이터를 사용한다.
FIFO (First In First Out)
- 주문 처리 시스템
EP.28 해시 테이블이 뭐죠?
해시 테이블
키 (Key) - 값 (Value) 구조
시간 복잡도 O(1)
어떤 값을 찾더라도 한 단계만 거친다.
해시 충돌이 발생할 수 있다.
해시 충돌
해시 함수가 서로 다른 두 개의 입력값에 대해 동일한 출력값을 내는 상황
해시 함수가 무한한 가짓수의 입력값을 받아 유한한 가짓수의 출력값을 생성하는 경우, 비둘기집 원리에 의해 해시 충돌은 항상 존재한다.
EP.29 개발자 필수 소양, 클린 코드!
클린 코드 5 꿀팁
클린 코드: 설명이 필요 없는 코드
1. 의미 있는 변수, 함수의 이름을 적절히 사용해라
2. 함수 이름은 가급적 동사로
3. 매개변수는 너무 많이 사용하지 마라
4. 불린 값을 인자로 보내지 마라
5. 축약어를 쓰지 마라
클린 코드를 작성하기 위해서는 코드를 많이 작성해 보는 게 우선이다.
많이 작성해 봐야 내 코드의 어떤 부분을 수정해야 하는지 알 수 있기 때문이다.
지금은 클린 코드 작성에 연연하기보다 내가 할 수 있는 선에서 깔끔하게, 가능한 많이 코드를 작성하는 연습을 해야겠다.
내가 번아웃을 극복하는 방법?
배드민턴이 최고시다~~
나가서 사람들하고 가벼운 이야기하고 열심히 뛰어다니다 보면 기분도 좋아지고 내일은 더 열심히 보내야겠다는 다짐을 하게 된다.
읽은 소감 + 떠오르는 생각
기초 알고리즘의 개념에 대해서 다시 짚어보고 갈 수 있는 시간이었다.
스택, 큐, 정렬, 해시까지. 다른 알고리즘도 공부해야겠다.
공부한 개념을 적용시킬 수 있도록 코딩테스트 문제도 풀어봐야겠다.
클린 코드 도서에 대한 이야기도 많이 들어서 궁금했는데, 노개북 클린코드도 참여할 예정이라 조만간 읽어야겠다.
반응형
'💪 Study > 📚 노마드코더 북클럽' 카테고리의 다른 글
IT 5분 잡학사전 Day 12 (2) | 2024.03.26 |
---|---|
IT 5분 잡학사전 Day 10 (0) | 2024.03.24 |
IT 5분 잡학사전 Day 07 (0) | 2024.03.21 |
IT 5분 잡학사전 Day 06 (1) | 2024.03.20 |
IT 5분 잡학사전 Day 05 (3) | 2024.03.19 |