Daehyunii's Dev-blog
<Udemy 재귀/검색 알고리즘> TIL-59 본문
오늘은 재귀함수를 통한 문제해결 방법과 검색 알고리즘에 대해서 공부했다. 재귀 함수는 파이썬, 모던 자바스크립트에서 여러번 보았고, 강의를 통해서 다시 한번 설명을 들은 뒤로는 어떻게 재귀함수가 돌아가는지 이해를 하고 있다. 하지만, 어렵긴 어렵다.. 특히 검색 알고리즘을 공부하면서 오늘은 어렵다는 생각이 많이 들었다. 한 번은 꼭 넘어야 할 산이라고 생각해서 열심히 천천히 따라가려고 노력하고 있다. 선형 검색의 경우에는 자바스크립트 메서드를 이용하거나, 코드 작성이 익숙한 반복문을 통해서 검색하기 때문에 괜찮았지만, 이진 검색 알고리즘은 처음에 많은 혼란을 불러 일으켰다. 강의를 듣고 예시 문제를 듣고 스스로 코드를 작성해 보려고 최대한 노력했지만, 스스로 코드를 작성하지는 못했다. 또 코드에 관한 해설을 듣기 전 코드만 보고 혼자 이해해 보기 위해 많은 시간을 들였다. 처음에는 구조 하나 하나를 뜯어보면 충분히 읽을 수 있었음에도 전체적으로 왜 이렇게 흘러가는지가 이해되지 않았다. 하지만 고진감래라고 했던가.. 서서히 조금씩 코드의 구성이 눈에 보이기 시작했고, 전체적으로 어떤 과정을 거쳐 원하는 값을 찾는지 눈에 들어오기 시작했다. 하지만, 지금도 코드를 다시 보면 헷갈리곤 한다. 많은 복습이 필요할 것 같다. 오늘 공부한 내용 중 가장 중요한 것은 이진 검색을 사용하는 이유다. 이진 검색은 굉장히 효율적인 알고리즘이다. 이진 검색은 정렬된 배열에서 사용해야 하지만, 정렬된 배열 내에서 원하는 요소를 검색할때 하나 하나 비교하는 선형 검색으로 원하는 요소를 찾는 것보다 처리 과정을 대폭 감축시킬 수 있는 좋은 해결 방법이라는 것이다. (O(logN) 시간 복잡도를 갖는다.)
사실, 자바스크립트의 기본편이긴 하지만, 모던 자바스크립트 책을 1회독 하고는 어느정도 발전했다고 생각했으나, 아직 갈 길이 멀다는 것을 오늘 다시 한 번 느끼게 된 것 같다.. 알고리즘을 시작하기 전 룸메이트에게 조언을 구했고 분명 어려울 것이라고 몇 번이고 알려주었고, 포기하지 말고 최대한 이해하려고 노력해보고 완주하라고 했었다. 학창 시절 수학 선생님께서 칠판에 수학 문제 풀이를 해주시면 그 순간에는 이해했지만, 막상 본인이 직접 수학 문제를 풀어보려고 하면 못푸는 것처럼 알고리즘도 마찬가지 일 것이라고 알려주었다. 그러다 어느 순간 어떻게 문제에 접근해야 하는지 깨닫게 될 것이라고도 말해주었다. 하루 빨리 그런날이 오기를 기다리며 계속해서 나아가보려 한다!
2022.08.04 - [언어 공부 및 정리/자바스크립트 알고리즘 & 자료구조[Udemy강의]] - 05 재귀
2022.08.05 - [언어 공부 및 정리/자바스크립트 알고리즘 & 자료구조[Udemy강의]] - 06 검색 알고리즘
'✏️ 2022. TIL > August' 카테고리의 다른 글
<Udemy 퀵 정렬> TIL-62 (0) | 2022.08.08 |
---|---|
<Udemy 삽입 정렬/합병 정렬> TIL-61 (0) | 2022.08.08 |
<Udemy 버블 정렬/선택 정렬> TIL-60 (0) | 2022.08.06 |
<Udemy 문제 해결 접근법/문제 해결 패턴> TIL-58 (0) | 2022.08.04 |
<Udemy 알고리즘 강의 빅오 표기법/배열과 오브젝트 성능 평가> TIL-57 (0) | 2022.08.01 |