예전에 학교에 다닐때
알고리즘을 구현 하려면
슈도코드를 보고 그흐름을 직접 구현할수 있어야 한다고 생각하고
시도해보려고 한적은 있었다.
하지만 당시에는
내가 알고 있는 내용으로는
간단한 히스토그램이랑 단순 이진화 밖에 구현하지 못하고 포기해버리고 말았었다.
어쩔수 없는게
당시에는 제곱 오차니, 최적화 이론이든 공업 수학이든 지금 처럼
수학, 통계적 지식이 부족한데다가
타인의 코드를 참고하지 않고 억지로 시행착오를 격으려고 하다보니 재뿔에 지쳤었던것 같다.
하지만 알고리즘 구현 연습을 할수 밖에 없는게
아무리 OpenCv에서 쉽게 쓸수 있도록 다양한 함수들을 제공해주고 있다고 하지만
그 API들을 사용해서 응용 어플리케이션을 만드는 것과는 별개로
알고리즘들을 분석하고 활용하려면, 슈도 코드에 대한 이해만으로는 부족하고
어느정도 구현은 할줄 알아야 된다고 생각하곤 있었다.
그래프나 트리 기반 알고리즘에 대해 분석을 하려면
자료구조에 대해 얼마나 이해해야하는가
개념만 알면 될까, 구현까지 해야될까
이런 자료구조 기반 알고리즘을 바로 다루기에는 나한태는 너무 어려운 일이고
얼마전에는 C++에서 자료구조로 연습할까했지만
기존의 알고리즘들은 C++로 eigen 같은 수학 처리 라이브러리로 구현해 놓은게 있지만
numpy로도 빠르게 할수 있어서인지 파이썬에서 구현해놓은것도 많다보니
아직 자료구조 다룰것도 아니고, 인덱싱이든 선형대수 연산이든 파이썬에서 할수 있으니까
단순 2차원 배열인
이미지 프로새싱 하는것에서 부터
수학적 지식을 코드로 구현하는 과정들을 다시 연습해보려고 한다.
내가 할수 있을지는 몰랐는데
다행이 오늘
히스토그램, 단순 이진화, 평균을 이용한 적응적 이진화 이 세가지를 구현할 수 있었다.
꾸준히 할지는 모르지만
꼭 넘어야 할 산이다.
이런거 공부하면서 매번 느끼는거지만
기업에서 채용할때 알고리즘 테스트가 정말 소용이 있는건가 싶다.
나는 한번도 본적없어서 자세히는 모르지만
자료구조, 탐색 알고리즘에 대해서 설명하고 구현하는 방법을 위주로 보는거 같아보여서
이걸로 뭘 할수 있는지 잘 모르겠다.
내가 모르는게 있겠지 싶지만서도
면접용 알고리즘 공부를 장려하기보다는
개인적으로 수학적 기반들을 직관적으로 가르쳐주고
실생활에서 사용가능한 알고리즘들을 구현하거나 개선해 나갈수 있도록 도와주는게 필요하다고 생각한다.
'그외 > 로그' 카테고리의 다른 글
2021.01.07 daily english study log (0) | 2021.01.07 |
---|---|
캐글 대회 참여와 시험 준비 (0) | 2020.12.03 |
논문 읽기와 구현 (0) | 2020.11.23 |
과제 마무리 (0) | 2020.11.19 |
시험 과제를 하면서 (0) | 2020.11.17 |