[데브코스] TIL - 3일차

Yunjjeong·2022년 3월 24일
0

오늘 공부한 내용 💻

  • 자료구조와 알고리즘이 중요한 이유
  • 자료구조의 종류
  • 시간 복잡도
  • 배열
  • 연결 리스트(Linked List)
  • 스택(Stack)
  • [실습] 올바른 괄호

어려웠던 내용 🤢

- Big O notation(빅 오 표기법)

왜 사용하는데? 컴퓨터에는 변수가 많아서 프로그램의 성능을 정확하게 측정할 수 있는 방법이 없거든! 대략적으로 측정하기 위해 사용한다!

O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(2^n) < O(n!)

크기가 클 수록 속도는 느리다.
상수항 무시 / 가장 큰 항 이외의 항은 무시

- 연결 리스트(Linked List)

  • 각 요소를 포인터로 연결하여 관리하는 선형구조 알고리즘
  • 각 요소는 노드라고 부르며 데이터 영역/ 포인터 영역 으로 구성
  • 추가/삭제가 많은 로직에 유용하다!
  • 연결 리스트의 특징
    • 메모리가 허용하는 한 요소를 제한없이 추가할 수 있다
    • 탐색하는데에 O(n) 소요된다.
    • 요소를 추가/제거 하는데 O(1) 소요된다.
    • Singly/Doubly/Circular Linked List가 존재한다.

더 공부할 내용 📃

  • Singly/Doubly/Circular Linked List 자바스크립트로 구현해보기
  • 코딩테스트 문제 풀때 시간복잡도 계산하기

느낀점 👀

> '더 좋고 더 나쁜 자료구조는 없다!'

특정 상황에서 유리한 알고리즘과 덜 유용한 알고리즘이 존재할 뿐이다!
라고 강사님이 말씀하신게 기억에 남는다. 주어진 문제 상황을 잘 파악하고 필요한 알고리즘을 사용할 줄 아는 사람이 되어야지!
그리고 그동안 공부하기 싫어서 흐린눈 -.- 하며 무시했던 시간복잡도에 관해서도 이번에 제대로 이해하게 된것 같아서 뿌듯하다 ㅎㅎ

바쁘더라도 주기적으로 알고리즘/코테 공부 조금씩 하기 !


참고 사이트 🙄

https://cooervo.github.io/Algorithms-DataStructures-BigONotation/index.html

profile
Studying FrontEnd Development

0개의 댓글

관련 채용 정보