TIL day7

이혜원·2022년 11월 22일
0

오늘 한 일

오늘은 알고리즘에 대하여 배웠다.

왜 하는지는 정말 이해가 잘 갔다. 단지 문제를 푸는게 어려웠을 뿐. 소수를 찾는 알고리즘 문제는 정말 머리가 깨지는 줄 알았다.

시간 복잡도와 공간 복잡도에 대하여 배웠다.

  • 시간 복잡도: 입력값과 문제를 해결하는 데 걸리는 시간과의 상관관계
  • 공간 복잡도: 입력값과 문제를 해결하는 데 걸리는 공간과의 상관관계

점근 표기법의 종류:

  • 빅오(Big-O)표기법
    최악의 성능이 나올 때 어느 정도의 연산량이 걸릴것인지 표기
  • 빅 오메가(Big-Ω) 표기법
    최선의 성능이 나올 때 어느 정도의 연산량이 걸릴것인지 표기

하지만 알고리즘에서는 거의 모든 알고리즘을 빅오 표기법으로 분석한다고 한다.

이유는 입력값이 최선의 경우일 가능성은 굉장히 적을 뿐더러,
우리는 항상 최악의 경우를 대비해야 하기 때문이다.ㅋ

  1. 입력값에 비례해서 얼마나 늘어날지 파악해보자. 11 ? NN ? N2N^2 (하나의 반복문 = N)
  2. 공간복잡도 보다는 시간 복잡도를 더 줄이기 위해 고민하자. 왜냐면 공간복잡도는 거의 상수이기 때문이다. 상수는 잘 고려 안해도 된다.
  3. 최악의 경우에 시간이 얼마나 소요될지(빅오 표기법)에 대해 고민하자

array와 linkedlist에 대하여


class에 대하여

  • 클래스를 이용하면 유사한 행동 혹은 유사한 데이터를 쌓을 수 있게 구조를 쉽게 만들 수 있다.
  • 연관성이 있는 데이터들을 클래스 내에서 관리하면서 다양한 객체를 쉽게 생성하기 위해서는 클래스라는 개념을 잘 활용해야 한다.

0개의 댓글