TIL - Day 4

MyeonghoonNam·2021년 8월 5일
0

TIL

목록 보기
4/49
post-thumbnail

프로그래머스 프론트엔드 데브 코스 프론트엔드 과정의 기록입니다.

8월 5일 (목)

📚 TIL

1. JavaScript 활용하여 자료구조와 알고리즘 학습


2. 코딩테스트 대비 프로그래머스 문제 해결 및 복습


📮 Feelings

1. 트리, 힙, 트라이

  • 트리의 개념을 이해하며 각각의 자료구조들을 구현해보았다.

  • 트리의 너비우선탐색의 순회 방식 이름이 레벨 순회라는 점을 알게 되었다. 그동안 그냥 너비우선탐색 이라고 인지하고 있었는데 너비우선탐색과 깊이우선탐색의 순회 방식에 대해 좀 더 명확하게 정리가 되었다.

  • 이진 탐색 트리를 구현해보며 트리의 생성과 삭제, 그리고 탐색을 공부하며 dfs와 bfs를 다시 한 번 공부하게 되었다. 트리의 노드의 삭제와 관련된 부분이 아직까지 미숙하다고 느껴진다. 개념은 명확히 이해가 가는데 코드로 구현하는데에서 어려움이 느껴져서 그런 것 같다. 그래도 예전에 처음 구현하였을 때 보다는 더 능숙해졌다. 그리고 이진 탐색 트리가 편향된 트리가 되었을 때의 문제점을 해결하기 위한 AVL트리와, 레드-블랙 트리가 나에게 생소하여 자세히 알고싶어졌다.

  • 힙을 반복문과 재귀로 구현하는 방법에 대해서 공부하였으며 이진 탐색 트리와 힙을 모두 구현해보니 개인적으로 재귀를 통한 트리의 구현이 뭔가 더 직관적으로 코드들이 이해가 되는 것 같았다. 그리고 우선 순위 큐는 힙이다라는 잘못된 개념을 가지고 있었는데 우선 순위 큐의 개념을 가장 효율적으로 나타낼 수 있는 자료구조가 힙이라는 점을 깨닫게 되었다.

  • 트라이를 해시 테이블 개념을 활용하여 구현하였는데 Object객체와, Map 객체를 활용하여 각각 구현해보았으며 Object와 Map의 비슷한 기능을 하지만 차이점에 대하여 더 공부할 수 있어서 좋았습니다. 그리고 자동완성기능의 기초 자료구조 알고리즘을 내가 구현해보며 개발에 대한 흥미와 자신감이 더욱 올라서 좋았습니다.


2. 정렬 알고리즘

  • 정렬 알고리즘에 대하여 다시 한 번 복습하게 되었습니다. sort 알고리즘을 사용안하고 직접 병합정렬 방식과 퀵 정렬 방식을 구현해 보았는데 분할 정복 알고리즘에 대해 이해도를 높일 수 있었습니다.

3. 이진 탐색 알고리즘

  • 이진 탐색 알고리즘은 코딩테스트 대비를 하면서 많이 다루어 보았는데 그 방식은 보통 배열을 활용한 방식이였지만 오늘은 이진 탐색 트리를 이용한 이진 탐색 알고리즘을 구현하는 법에 대하여 배울 수 있어서 좋았습니다.


📅 Future Action Plans

  • 코딩테스트 대비 알고리즘 문제 풀기

  • CS 스터디 발표 자료 정리하기.

  • 트리의 중위, 전위, 후위 순회 다시 복습 후 구현하기.

  • 트라이 자동완성기능 구현 코드 리펙토링 하기.

profile
꾸준히 성장하는 개발자를 목표로 합니다.

0개의 댓글