2022-06-12(일) TIL

황인호·2022년 6월 12일
0

TIL 모음

목록 보기
76/119

오늘해야할일

  1. 이력서 제출하기 5개 [2개 완료]
  2. 알고리즘 강의듣기 10개 [6개 완료]
  3. 실전프로젝트 API 2개 작성하기 [미완료]
  4. 인간JS되기 강의 1개 듣기 [미완료]
  5. 호그와트 회의(간단하게 노션 꾸미기) [완료]

알고리즘의 시간복잡도를 그려보았다~~

Big O of Array Operations

  • push - O(1)
  • pop - O(1)
  • shift - O(N)
  • unshift - O(N)
  • concat - O(N)
  • slice - O(N)
  • splice - O(N)
  • sort - O(N * log N)
  • forEach/map/filter/reduce/etc. - O(N)
    push , pop은 빠르고
    sorting은 느리다...!!!

※ 객체는 거의 모든것을 더 빠르게 하지만, 정렬되어 있지 않고
※ 배열은 정렬되어 있지만 , 끝에 추가하고 제거하는 작업이 시작에 추가하고 제거하는 작업보다 훨씬빠르다.
왜냐하면 시작에 넣거나 빼면 처음부터 끝까지 영향을 받으면서 전부 인덱스를 다시 정리해야 하기때문이다.

배열 연산 퀴즈!!

  1. 배열 안에 데이터를 삽입하는 빅오는 무엇인가??
    1) O(1)
    2) O(n)
    3) O(n^2)

  2. 배열 안에 데이터를 이동하는 빅오는 무엇일까요??
    1) O(1)
    2) O(n)
    3) O(n/2)

  3. forEach 함수를 위한 빅오는 무엇일까요?
    1) O(1)
    2) O(n/2)
    3) O(n)

1번 1 , 2번 2 , 3번

알고리즘은 특정 작업을 달성하기 위한 과정이나 일련의 단계를 의미한다!!

알고리즘을 알아야하는 이유는??

프로그래밍에서 수행하는 거의 모든 작업에는 아주 기본적인 작업이든 복잡한 애플리케이션을 구축하든 일종의 알고리즘이 포함되므로 문제를 해결할 방법을 마련할 수 있도록 하기위함입니다.

그렇다면 어떻게 해야 알고리즘을 더 잘 이해할 수 있을까??
대부분의 사람들은 이해력이 타고나는 것이라 생각하는데 나처럼 타고나지 못한사람들은...ㅠㅠ

  1. 문제 해결을 위한 계획을 수립하라!
    => 문제에 접근하는 방법, 문제를 세분화하기 위한 전략

  2. 일반적은 문제 해결 패턴을 파악하라!

문제의 이해

profile
성장중인 백엔드 개발자!!

0개의 댓글