자료구조와 알고리즘에 대한 나의 생각

Viva의 놀이터·2020년 12월 6일
0

알고리즘

목록 보기
4/14
post-thumbnail

자료구조

기술이 발달함에 따라 현실세계의 것을 가상세계 즉 컴퓨터로 옮기는 과정에서 많은 데이터들을 저장하고 관리하게 되었다. 하지만 많은 데이터를 관리하기 위해서는 많은 공간이 필요하였고 중구난방으로 정리가 되어있어 어떤 데이터를 활용하기 위해 데이터를 찾으려고하면 많은 시간이 걸리거나 일일이 하나하나 확인하는 등 비효율적이였다. 이러한 문제를 해결하고자 등장한 것이 자료구조이다. 자료구조, 데이터 구조, data structure 이라고 불리며 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미한다.

데이터를 구조화하는데 자료구조가 사용되는데 어떤 데이터 구조를 사용하느냐에 따라 효율이 달라진다. 효율적으로 데이터를 관리하는 자료구조의 종류에는 대표적으로 배열, 스택, 큐, 링크드 리스트, 해쉬 테이블, 힙 등이 있다.

ex)
도로명 주소:사람들의 주소를 효율적으로 관리하고 사용하기위해 도로명 주소를 사용한다.
우편번호: 5자리 숫자로 시, 군 ,자치구를 표기하여 주소를 관리한다.
학생 관리: 학년, 반, 번호를 학생에게 부여하여 학생들의 정보를 관리한다.

알고리즘

알고리즘은 쉽게들 어떤 문제를 풀기 위한 절차 및 방법이라고 한다. 보통 자료구조와 알고리즘을 묶어서 많이 이야기를 하는데 이는 현실세계의 문제를 가상공간(컴퓨터)로 어떻게 효율적으로 옮길것인지를 해결하기위해 자료구조와 알고리즘이 등장하고 중요한 것 같다. 사람마다 문제를 해결하는 과정이 다르지만 더 효율적인 방법이 있을 것이다. 프로그램에서의 알고리즘은 더 빠르게 문제를 해결할수있는 즉 효율적인 알고리즘을 만드는 것이 좋은 알고리즘을 만드는 것이라고 할 수 있다.

자료구조와 알고리즘이 중요한 이유는 어떤 자료구조와 알고리즘을 쓰느냐에 따라 성능이 다르기 때문이다.

자료구조가 도구라면 알고리즘은 도구를 사용하는 방법으로 생각 할 수 있는데
어떤 도구를 사용하고 그 도구를 어떻게 사용하는지에 따라 결과물이 다르기에 좋은 도구 선택과 효울적이 도구의 사용이 중요한 것으로 생각 할 수 있다.

결론

좋은 개발자가 되기 위해서는 자료구조와 알고리즘을 잘 알아야겠다!

profile
역사를 잊은 기술에겐 미래가 없다

0개의 댓글