[TIL] W1 / Day 3

alang·2021년 8월 4일
1

TIL

목록 보기
3/10
post-thumbnail

새롭게 배운내용


배열

배열의 특징

  • 일반적으론 고정된 크기를 가짐 ( ex.C언어와 같은 Compile언어들 )
  • JavaScript는 동적으로 크기 증감

특이한 JavaScript 배열

  • HashMap에 가까워 index에 숫자외의 값도 넣을 수 있다 ( 하지만 배열이라 할수 없음으로 사용 x )
  • HashMap에 가깝지만 length가 관리되는 점

환형 큐

  • 환형 큐는 정적인 메모리에서 구현되어지기 때문에 일반적으로 큐를 구현하는 Linked List를 사용하는 이점이 없다. 메모리를 덜 쓰는 Array가 추천

해시 테이블

해시 충돌 ( 해시 함수의 결과값이 동일 할때) 가 발생했을때

  • 선형 탐사법 : 충돌 발생시 옆으로 한 칸 이동

  • 제곱 탐사법 : 충돌 발생시 횟수의 제곱만큼 이동

  • 이중 해싱 : 충돌 발생시 다른 해시 함수 이용

  • 분리 연결법 : 버킷 값을 연결리스트로 사용해 리스트에 값 추가

    Map

  • 복잡한 값 Key로 사용가능 (Object etc...)

  • 편한 Method들로 인해 traverse가 비교적 편함


오늘 느낀점


  • 괄호 문제와 같이 st의 성질을 이용해야하지만 그렇다고 반드시 배열을 사용해야만 하는건 아니다. st의 성질만 이용하고 이를 원시타입과 같은 데이터(이 문제의 경우 number)를 이용해 같은 로직을 메모리적으로도 더 효율적이게 작성할 수 있다( 풀이 볼때 살짝 충격받음 ). 알고리즘을 짤때 자료구조를 활용하더라도 어떤 데이터타입을 사용할지를 고민하는것도 중요하겠다.

  • 오늘 할 일들을 적어놨는데 아직까지 한개도 못함... 좀 더 효율적인 시간관리가 필요해보인다.

과제


  • size Method를 가진 SinglyLinkedList 구현 ( 예외처리도 진행 )
  • DoublyLinkedList 구현하기
  • CircularLinkedList 구현하기

참고자료


...

profile
안녕하세요. 개발자 지망생입니다.

0개의 댓글