210305_TIL

seungyeon·2021년 3월 5일
0

TIL

목록 보기
31/64

IM: DAY 12

IM 코스 2주차 과정이 끝났다. 자료구조와 알고리즘에 대해 배우기 시작했다. 그동안 알고리즘 문제를 풀면서 답답했던 부분을 채울 수 있을테니 개운하겠다고 생각했는데, 그 생각이 반은 맞고 반은 틀렸다.
🧐 확실히 개념을 아니까 전에 읽었던 글들을 다시 봤을 때 이해하는 정도가 달라졌다. 아는만큼 보인다는 말이 이래서 나왔구나 싶었다.
🤯 어제 오늘 이틀동안 BackTracking과 혈투를 벌이고 있다. 개념을 이해하고나서 코드로 적용하는 것이 이렇게 어려웠던 적이 처음이라서 너무 답답하다. 그래도 많은 동기분들에게 설명을 듣다보니 어제보다는 이해도가 훨씬 높아졌다고 생각한다. 이번 주말을 이용해서 코드를 짤 때 자유롭게 사용할 수 있는 수준까지 만들어놓자.
(낑낑대는 저에게 열과 성을 다해 반복해서 설명해주셨던 동기님들 진심으로 감사합니다💓)

오늘 한 일

  • Graph 학습
  • Tree Search Algorithm 학습
  • Coplit - Graph, Tree, BST 알고리즘 문제 풀기
  • BFS, DFS, BackTracking 공부 🤯

기억할 것

new Array(n) 관련

  • Array(n).fill(Array(m).fill(0)) 사용시 주의
    Array(m).fill(0)은 동일한 배열. 하나가 바뀌면 싹 바뀜. 각기 다르게 사용하고 싶다면 반복문으로 따로 추가해줘야 함.
  • Array(n) vs. new Array(n)
    Array(n)는 전역 메서드를 사용하는 방식이고, new Array(n)는 Array 클래스의 인스턴스를 만들어서 사용하는 방식이다. 자바스크립트에서는 브라켓을 사용해 배열을 만드는 방식이 가장 바람직하지만, 경우에 따라 사용해야 한다면 new 키워드를 사용하는 것이 좋다.
  • new Array(n)를 사용할 땐 fill메서드와 함께 사용하는 것이 좋다.
    fill 메서드를 적용하지 않은 상태로 만들어지면 인덱스로 불러올 땐 undefined가 나오지만 실제로는 empty 상태로 만들어지는 거라서 map과 같은 고차함수를 사용할 때 에러가 발생한다.

자료구조(알고리즘) 관련

  • 정점(노드)의 개수가 1000만개가 넘는다면 인접행렬로 접근해선 안된다.(데이터 규모가 너무 큼)
    • 1000바이트 = 1K
    • 1000K = 1M
    • 1000M = 1G
  • 자바스크립트 primitive type data 크기는 8바이트라고 생각하면 된다.
  • 트리는 그래프의 일종이다.
    트리에는 그래프에는 없는 '계층' 개념이 있다.
    알고리즘에서 보게 될 트리는 이진트리, 힙(heap) 딱 두개 뿐이다.
  • 이진트리를 구현하라는 것보다는 이진검색(이분탐색)을 요구하는 문제가 많이 나온다.
  • 힙(Heap)과 우선순위 큐는 같은 개념이다.

더 공부할 것

  • BFS, DFS, BackTracking 정복하기
  • 힙(Heap)

내일 할 일

  • Subclass Dance Party Sprint 제출 용량 문제 해결하기
  • 졸업 논문 계획서 작성하기 / 제출하기
  • IM 코스 Achievement Goals 싹 정리해보기

0개의 댓글