왜 이런게 생겼나요?
서로 다른 2개의 알고리즘이 있을 때, 똑같은 문제를 풀 수 있는 2개의 알고리즘이 있다면, 어떤 알고리즘을 사용하는 것이 더 빠른가? 라는 문제가 있다고 가설을 세워 보겠다.
기본적인 답은 다음과 같이 생각할 수 있다.
둘 다 코딩을 해서 어떤 알고리즘이 더 빠른지, 메모리는 얼마나 소비하는지 확인한다.
하지만 프로그래머는 몸값이 비싸고 개인별로 능력치도 상이하다.
때문에 오류발생 가능성이 높기에 최선의 방법이 아니다.
주어진 알고리즘을 수학적으로 분석해서 어떤 알고리즘이 더 좋은지 결론을 내리는 것이 필요하다.
글쓴이의 마음가짐
대부분의 컴공생이나 개발자는 코딩테스트를 위해 알고리즘을 많이 공부한다.
물론 이것은 필자 또한 마찬가지이다.
하지만 알고리즘 공부의 목적을 단순히 코딩테스트를 위해서 공부한다면 롱런을 하지 못할 것이다.
때문에 1차 목표를 코딩테스트 통과가 아닌 알고리즘 학습을 통한 best, worst code 분석과 코드를 보는 시야를 넓히는 것을 주로 할 계획이다.
물론 알고리즘 공부를 위해 c++을 사용하는 것은 적응이 안되긴 한다.
메모리 할당을 알아서 해주는 언어들이 많은데 굳이...? 라는 생각을 떨칠 수 없긴 하지만 완벽하게 공부해 둔다면 나중에 다 도움이 될 것이라고 생각한다.
※ 알고리즘과 자료구조 포스팅은 성균관대학교 허재필 교수님의 인공지능을 위한 알고리즘과 자료구조,컴퓨팅 사고 강의를 참고하여 작성되었습니다.
'CS > 알고리즘(Algorithm)' 카테고리의 다른 글
[Algorithm] 코드 블럭 단위 복잡도 분석 (0) | 2023.03.15 |
---|---|
[Algorithm] BFS,DFS 알고리즘 구현(C++) (0) | 2023.02.03 |
[Algorithm] 그래프 탐색 알고리즘(BFS, DFS) 기본 (0) | 2023.01.29 |
[Algorithm] 점근 표기법 (0) | 2023.01.17 |
[Algorithm] 선형검색, 이진검색 알고리즘과 점근분석(Linear&Binary search) (0) | 2023.01.13 |