CS/Data Structure & Algorithm

자료구조와 알고리즘을 공부하는 이유

좋은 프로그램을 만들기 위해서

좋은 프로그램은 속도가 빠르고, 효율적이며, 범용성이 높아야 합니다. 그 골격이 되는 좋은 알고리즘을 만들 필요가 있습니다.

프로그램의 좋고 나쁨을 판단하기 위해서

간단한 프로그램은 이미 누군가가 만든 프로그램의 일부분을 조합하는 것만으로도 쉽게 만들 수 있기 때문에 알고리즘을 의식할 기회가 점차 줄어듭니다. 알고리즘을 제대로 공부한 사람이면 프로그램의 소스코드를 분석해서 판단할 수 있게 됩니다.

하지만 누군가가 만든 프로그램의 알고리즘이 반드시 하나 뿐이라는 보장도 없습니다. 또한, 좋은 프로그램이라고도 말할 수 없습니다.

그리고 현업에서 프로젝트를 할때는, 대부분은 언어나 프레임워크나 라이브러리에서 이미 잘 만들어진 것들을 가져와서 우리가 만들고자 하는 기능에 맞게 가장 적합하고 효과적인 것들을 쏙 가져와서 쓰는 경우가 대부분이기 때문에, 이런 코딩테스트 같은 문제를 푸는 일은 거의 없습니다.

프로그램 작성 과정 전체를 효율화하기 위해서

프로그램 작성도 이와 마찬가지입니다. 좋은 프로그램을 만들고 싶고, 프로그램을 작성하는 공정을 효율적으로 진행하고 싶은 프로그래머라면 알고리즘 공부에 많은시간을 투자해야 합니다.

프로그래밍이 어느 정도 진행된 시점에서 프로그램이 효율이 좋지 못하다는 사실이 밝혀지거나 실행 시간을 단축할 방법이 존재한다는 것을 발견해도 대폭 수정하기 어렵고 시간낭비가 심합니다. 알고리즘을 잘 숙지한 상태라면 설계 단계부터 잘 고려해서 중간에 큰 수정을 할 수고를 덜게 됩니다.

집을 지을 때 일단 집을 완성하고 나서 자기가 살고 싶은 집을 선택하는 사람은 없을 것입니다. 집을 지을 때는 건축사가 작성한 설계도를 바탕으로 서로 합의한 후에 실제 건축 작업에 들어갑니다.

 

현실적인 이유

코드 테스트

프로그래머를 구인하는 많은 회사는 적합한 사람을 채용하기 위해 노력합니다. 적합한 사람이란 기본적으로 효율적인 코드를 구현해내는 사람이고 이는 알고리즘을 이해하는 구직자입니다. 개발자의 실력을 가늠하는 척도로 이용되고 있는것이 현실입니다.

회사는 많은 구직자 중에서 적합한 사람을 채용하기 위해 코드 테스트라는 것을 도입했다.

회사는 적은 투입량으로 최대의 결과를 도출하는 대표적인 이윤집단이라는 것을 알아야 합니다.

시대의 흐름에도 크게 변하지 않는 근본

마치 수학에서 덧셈 뺄셈을 기본으로 배우고 새로운 부분이 생기는 일없이 사용하는 것과 똑같은 맥락입니다.

자료구조와 알고리즘은 시대의 흐름에도 크게 변하지 않습니다. 시대가 바뀌면서 계속해서 새로운 기술들이 등장하고 변화된다. 기존의 프로그래밍 언어, 프래임워크, 라이브러리, API 등 많은 기술들이 변화되고 진화되어갑니다. 하지만 몇십년이 지나도 자료구조와 알고리즘은 예전과 달라지지 않은 근본 기술입니다.

 

참고

 

[알고리즘] 왜 알고리즘을 공부해야 하는가?

이번 글의 내용은 "처음 만나는 알고리즘" 책을 정리 및 참조하였음을 먼저 밝힙니다. ★ 최근에 여러 가지 편리한 프로그래밍 툴이 개발되어 알고리즘을 공부한 적이 없는 사람들 또한 보편적

fintecuriosity-11.tistory.com

 

 

[알고리즘, 시작]알고리즘을 배우는 이유

어떤 문제의 해결을 위하여, 입력된 자료를 토대로 하여 원하는 출력을 유도하여 내는 규칙의 집합. 여러 단계의 유한 집합으로 구성되는데, 각 단계는 하나 또는 그 이상의 연산을 필요로 한다.

velog.io

 

 

자료구조와 알고리즘을 배우는 이유

자료구조와 알고리즘은 프로그래밍 언어로 코드를 한 줄 이상 작성하는 모든 개발자들이 기본적으로 알고 있어야 되는 지식이다. (수학으로 따지면 기본 개념, 원리) 이 기본 지식에 대한 기본

ppidolimyo.tistory.com

 

 

자료구조와 알고리즘을 왜 배워야 할까?

이번 포스팅에서는 자료구조와 알고리즘의 특징을 알아보기 전에 왜 배워야 하는가 ? 많은 기업들은 왜 자료구조와 알고리즘 해결능력을 보려고 하는가 ? 에 대해서 포스팅 해보면서 우리가 배

hanhyx.tistory.com

'CS > Data Structure & Algorithm' 카테고리의 다른 글

[String] 3. 문장 속 단어  (0) 2022.08.13
Algorithm & Data Structure  (0) 2022.08.13
[String] 2. 대소문자 변환  (0) 2022.08.10
[String] 1. 문자 찾기  (0) 2022.08.04
List  (0) 2021.12.02