Daehyunii's Dev-blog
<Udemy 문제 해결 접근법/문제 해결 패턴> TIL-58 본문
오늘은 문제 해결 접근법과 대표적인 문제 해결 패턴에 대해서 공부했다. 우선 오늘 공부한 문제 해결 접근법은 알고리즘을 공부할 때 가장 기본이 되는 내용인것 같다. 문제를 이해하고 구체적인 예시들을 생각해보고 문제를 세분화해서 큰 그림을 만들고 그 다음 문제를 해결하고 또 해결하지 못한 부분은 단순화하고 나머지 부분을 해결하는 일련의 과정들은 앞으로 문제를 해결하는데 있어서 굉장히 중요한 전략이 될 것 같다. 모든 사람이 문제를 보고 직관적으로 가장 최선의 방법이 떠오른다면 좋겠지만, 사람이기에 그것은 불가능에 가깝다. 그렇기 때문에 문제에 접근하기 위해서는 문제를 자세하게 살펴보고 정확하게 이해하는게 중요한 것 같다. 해당 강의를 듣기전까지만 해도 간단한 문제를 구현함에 있어서 어떻게 접근해야 할 지 우왕좌왕한 적이 많이 있었다. 하지만 해당 강의를 통해 대부분의 사람들이 그럴것이고(물론, 간단한 문제는 아니겠지만..) 그렇기 때문에 체계적으로 문제에 접근하는것이 중요하다는 것을 느낄 수 있었다.
또한 마지막에 가장 강조했던 문제를 복습하고 더 나은 해결책은 없었는지 더 효율적인 방법은 없었는지 코드 하나 하나 비교해봐야 한다고 했던 말도 굉장히 인상 깊었다. 사실 많은 사람들이 그렇겠지만, 문제를 해결하고 복기하며 스스로 평가를 내리는 시간을 갖는 사람은 많지 않을 것이다. 왜냐하면 일단 문제는 해결했기 때문이다. 하지만 개발자라면 이 부분이 문제를 해결하는것보다 더 중요한 것이라고 생각이 든다. 아직 개발자가 된 것은 아니지만, 공부를 하면 할 수록 느낀것은 계속해서 공부하고 또 공부를 해야 한다는 것이었다. 자바스크립트만 보아도 매년 새로운 ES버전이 출시되고 있으니 말이다. 그렇기에 작성한 코드를 복기하며 다른 방법들과 비교하고 평가하는 시간을 갖는 것은 굉장히 중요하다고 생각한다.
또 오늘은 대표적인 문제 해결 패턴에 대해서 공부했다. 강사님이 직접 이름을 붙인 Frequency Counter, Multiple Pointers 또 공식적인 이름이 있는 Divide and Conquer 등을 공부했다. 대표적인 패턴들을 공부하고 느낀것은 모든 상황에 다 적용할 순 없지만, '가장 일반적으로 발생되는 문제를 해결하기 위한 어느정도의 패턴들은 정해져 있구나'라는 생각이 들었다. 이러한 패턴들에 익숙해지고 이를 활용하는 능력을 기르고 나아가 응용하는 능력까지 갖춘다면 나에게 큰 도움이 될 것 같다. 사실 오늘 공부한 패턴들에 대한 코드들은 수업을 들으면서 이해할 수 있었다. 코드를 보자마자 어떤 원리로 동작하는지 캐치하지는 못했다. 한 번에 코드를 보고 원리를 알지 못해 조금은 답답했지만, 그래도 이제 알고리즘이 무엇인지 막 걸음마 단계를 시작했기에 '이러한 패턴들이 있구나!' 하고 느끼고 넘어가려고 한다. 그래도 공부하자 마자 이해한 내용들을 정리해 놓았으니, 이 강의를 끝까지 듣고 계속 공부한 미래의 어느 날에는 코드를 보자마자 이해하고 또 내가 직접 능숙하게 작성하는 날이 빠르게 오길 바라며 열심히 공부해 보려고 한다.
2022.08.04 - [언어 공부 및 정리/자바스크립트 알고리즘 & 자료구조[Udemy강의]] - 03 문제 해결 접근방법
2022.08.04 - [언어 공부 및 정리/자바스크립트 알고리즘 & 자료구조[Udemy강의]] - 04 문제 해결 패턴
'✏️ 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-59 (0) | 2022.08.05 |
<Udemy 알고리즘 강의 빅오 표기법/배열과 오브젝트 성능 평가> TIL-57 (0) | 2022.08.01 |