본문 바로가기
개발일지/일간회고 (TIL)

알고리즘 2주차, 3주차 내용 정리 / TIL (22-11-14)

by 윤승임 2022. 11. 14.

주말과 오늘까지 2주차, 3주차를 허겁지겁 달렸다.

이제 3주차 과제를 해야하는데 알고리즘 진짜 너무 어렵다..

하지만 화이팅~

파이썬 함수

  • len
  • range
  • string

어레이(Array)

배열이라고도 한다.

배열은 크기가 정해진 데이터의 공간이며 한번 정해지면 바꿀 수 없음!

원소 순서는 0부터 시작하고 이를 인덱스라고 부른다.

각 원소에 즉시 접근 가능. (O(1)내에 접근 가능)

원소를 중간에 삽입 / 삭제하려면 모든 원소를 다 움직여야한다. (O(N)만큼의 시간 복잡도)

원소를 새로 추가하려면 새로운 공간을 할당해야 함. (매우 비효율적)

파이썬의 배열은 링크드리스트로 쓸수도 있고, 배열로도 쓸 수 있다.

 

링크드리스트(Linked list)

포인터와 노드로 구성되어있다.

포인터로 이어주기만 하면 데이터 추가 / 삽입 / 삭제는 자유로움.

특정 원소에 접근하려면 모든 칸을 탐색해야할수도 있다. (O(N)의 시간 복잡도)

 

클래스

분류, 집합, 같은 속성과 기능을 가진 객체를 총칭함.

객체는 세상에 존재하는 유일무이한 사물.

생성자(Constructor)에 객체를 생성할 때 데이터를 넣어주거나, 내부적으로 원하는 행동 실행.

생성자 함수 이름은 무조건!! __init__ 으로 고정!!

생성자는 생성시에 호출되는 함수이다.

클래스 내부의 함수는 메소드라고 불림.

연관성 있는 데이터들을 클래스 내에서 쉽게 관리, 다양한 객체들을 쉽게 생성 가능.

이진탐색

데이터를 탐색하는 방법 중 하나.

재귀함수

자기 자신을 호출하는 함수.

간결하고 효율적인 코드를 작성할 수 있다.

탈출 조건 필수.

버블 정렬

선택 정렬

삽입 정렬

병합 정렬

스택

해쉬