알고리즘

알고리즘 전에

stophyeon 2023. 9. 9. 19:15
728x90

알고리즘은 어떤 문제를 해결하기 위한 동작들의 모임을 의미합니다. 대부분의 사람들이 코딩테스트를 위한 공부일 뿐 실무에서는 사용하지 않는다고 생각할 수 있지만 알고리즘과 자료구조를 사용하지 않고 서비스를 구현하면 성능이 떨어지고 공간을 많이 낭비하게 되기 때문에 알고리즘과 자료구조는 필수적인 요소라고 생각합니다.

 

알고리즘을 공부하기 전에 자료구조를 반드시 알아야합니다. 사용하는 언어마다 자료구조가 다르지만 대표적인 자료구조로는 그래프/스택/큐/트리등이 있습니다. 제가 자료구조를 공부했을 때는 각각의 자료구조의 특징들과 사용했을 때의 이점을 위주로 공부했습니다. 이런 상황에서 가장 적합한 자료구조는 무엇인가에 대해서 많이 봤습니다. 

 

자료구조 공부를 끝내고 알고리즘을 공부하면서 느낀 점은 사실 알려져있는 알고리즘들은 어떤 개념이라기 보다는 지금까지 나온 방법중 최선이자 최고의 방법이라는 것이었습니다. 

다시 말해 제가 어떤 문제를 풀기위해 직접 코딩을 했는데 이 방법이 유일하다면 제가 하나의 알고리즘을 개발한 것입니다.

즉, 알고리즘은 유명한 방법들을 정리한 내용입니다.

 

예를 들어 유명한 알고리즘으로 DFS/BFS/펜윅트리/백트래킹 등등과 같은 것들은 어떤 문제에 적용했을 때 최고의 효율을 내기 때문에 지금까지 사람들이 공부하는 것입니다. 

 

지금까지 제가 알고리즘을 공부하면서 느낀 생각을 정리해보았습니다.

이제부터 유명하고 잘 사용되는 알고리즘에 대해 하나씩 설명해 보겠습니다.

'알고리즘' 카테고리의 다른 글

문제 - 미로 탈출 명령어  (0) 2024.01.23