CS

[IT 5분 잡학사전] Assignment #09

Rosie_dev 2023. 1. 22. 00:52

 

 

IT 5분 잡학사전 - YES24

개발자는 다 맥북을 써야 하나?”와 같은 사소한 질문부터 “서버가 대체 뭔지?”까지~♬전공자와 비전공자 모두 알고 싶어 하는 질문을 5분 안에 해결해 주는 IT 잡학사전이 나왔다!IT 분야 직장

www.yes24.com

 

  • 26. 정렬 알고리즘이 뭐죠?
  • 27. 스택, 큐가 뭐죠?
  • 28. 해시 테이블이 뭐죠?
  • 29. 개발자 필수 소양, 클린 코드!

 

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

 

기계적으로 측정한 시간 복잡도는 같아도 평균적으로 빠른 알고리즘은 있을 수 있다.

 

버블정렬

오른쪽의 값과 비교해서 큰 경우 오른쪽으로 수를 이동시키는 것으로 맨 오른쪽까지 이동하여 한 사이클을 도는 것을 말한다. 다음 수를 비교하는 경우에는 맨 마지막 위치의 수를 제외할 수 있다.

시간복잡도는 O(N2)여서 좋은 알고리즘이라고 하기 어렵다.

 

선택정렬

전체 데이터 중에서 가장 작은 데이터 또는 가장 큰 데이터의 위치를 따로 기억하는 방식으로 작업을 진행한다. 시간복잡도는 O(N2)이다.

 

삽입정렬

앞에 있는 데이터를 보면서 정렬한다. 앞에 있는 데이터보다 지금 데이터가 작으면 앞으로 보낸다. 삽입정렬은 선택, 버블정렬보다 빠르다. 하지만 시간 복잡도는 O(N2)이다. 

 

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

 

추상 자료구조 - 큐, 스택

스택의 규칙 - 위에서 데이터를 쌓고, 위에서부터 데이터를 뺀다. ex) 웹 브라우저의 뒤로가기, 되돌리기 단축키

큐의 규칙 - 위로 데이터를 쌓고, 아래서부터 데이터를 뺀다. ex) 쇼핑몰 주문 처리 시스템

 

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

 

해시테이블

키와 값을 짝지어 모은 것, 키로 검색할 때의 시간복잡도 O(1)으로 효율이 좋다.

단순히 배열로 나열하는 것보다 각 값을 키로 두고 여부를 판단하는 아래와 같은 해시테이블이 효율이 더 좋다.

contries = {
	"태국" : true,
    "그리스" : true,
    "대한민국" : true,
    "영국" : true
}

 

'해시 함수'는 키를 숫자인 인덱스로 변환해서 검색 효율을 높인다. 만약 같은 키에 값이 배열 형태라면 '해시 충돌'이 발생하게 된다. 그렇다면 키의 값을 배열로 넣어 선형검색하는 방식으로 충돌 처리를 할 수 있다.

 

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

 

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

 

  • 의미있는 변수, 함수의 이름을 적절히 사용하라
  • 함수 이름은 가급적 동사로 지어라 - 함수의 액션은 1가지!
  • 매개변수는 너무 많이 쓰지 마라 - 3개 이하
  • 불린값을 인자로 보내지 마라 - 한 가지 액션을 취한다는 것과 달라진다
  • 축약어를 쓰지 마라

 

항상 마지막에 코드를 다듬는 작업을 해야겠다. 현재 프로젝트가 끝나고 코드를 정리하는 기간이긴 한데, 보면 클린코드의 원칙을 많이 지키지 못한 부분을 볼 수 있다. 클린코드 원칙을 지켜서 다듬을 필요가 있을 것 같다.

 

 

'CS' 카테고리의 다른 글

[IT 5분 잡학사전] Assignment #12  (0) 2023.01.24
[IT 5분 잡학사전] Assignment #10  (0) 2023.01.23
[IT 5분 잡학사전] Assignment #07  (1) 2023.01.18
[IT 5분 잡학사전] Assignment #06  (0) 2023.01.18
[IT 5분 잡학사전] Assignment #05  (0) 2023.01.17
댓글