Tech Blog/Info(Linux,etc)

데이터 구조 및 알고리즘 (정보 글 아님, 생각 정리 글)

EXPRESSIONS HAVE POWER 2021. 6. 18. 17:57

우리는 이미 짜여진 데이터 구조와 알고리즘들을 사용하기에 

내가 처음 코딩을 했을 때는 데이터구조와 알고리즘의 필요성을 못 느꼈었다.

많은 사람들이 그럴 테지만, 코딩의 첫 입문을 데이터구조와 알고리즘으로 하는 사람은

당연히 없을 것이다.(재미도 없고, 어렵기 때문에..?)

처음에는 무언가를 만들어 가는 재미로 웹페이지나 어플리케이션 등등을 만드는 것을

공부하며 배웠다.(swift, 파이썬,자바,go,자바스크립트 등등)

그러다가 많은 사람들이 온라인 코딩테스트로 공부를 한다는 것을 

알게 되었는데... 나도 따라 해봤는데... 온라인 코딩테스트는 주로 알고리즘 문제가 많이

나오기 때문에, 어려워서 풀지도 못하고..굳이 이런 것 까지 공부해야하나 싶었다.

 

지금은 C언어를 배우면서 low-level의 프로그래밍을 하다보니까... 이제야 약간 데이터 구조와

알고리즘의 중요성을 깨닫고, 흥미가 생기기 시작한다.

 

데이터 구조(Data Structure)는 결국 메모리를 효율적으로 관리하기 위해서, 프로그래밍을 위한 기초를 다지는 부분이라고 볼 수 있다.

 

알고리즘(Algorithm)은 특정한 목표를 이루기 위해 필요한 과정들을 최적화 한 것이라고 볼 수 있는데, 특히 c언어에서는 데이터관리와 메모리관리 하는 부분의 최적화를 뜻하는 단어이다.  

 

얼핏 보면 정말 복잡하고 어려운 것 같긴 하지만, 하나하나 순차적으로 마치 컴퓨터마냥 c언어마냥 절차지향적으로 생각해보면 그렇게 어려운 것도 아니다. 결국에는 번호를 매겨서 숫자놀이하는 것처럼 숫자를 정렬시키고, 각 숫자에 자신이 필요로 하는 명령어를 넣으면 그것이 결국 프로그래밍의 완성이 되는 것이다.