알고리즘

김민섭·2023년 2월 1일
0

알고리즘이란?

"알고리즘(영어: algorithm), 셈법은 수학과 컴퓨터과학, 언어학 또는 엮인 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차이다. 계산을 실행하기 위한 단계적 절차를 의미하기도 한다. 즉, 문제 풀이에 필요한 계산절차 또는 처리과정의 순서를 뜻한다. 프로그램명령어의 집합을 의미하기도 한다."
즉 문제 해결능력을 지칭하며 말합니다.

출처 : 위키백과
https://ko.wikipedia.org/wiki/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

알고리즘을 해야할까 ?

각종 커뮤니티나 혹은 sns 매체 (유튜브 등등...)에서 알고리즘에 관련된 내용이라면 항상 거론되는 말로
"해야한다. 개발자의 기초소양이다." , "필수 요소는 아니다." 라는 언급이 굉장히 많이 나옵니다.
필자가 생각하는 개인적인 생각으로는 프로젝트를 진행하고 취업을 하는데 있어서는 알고리즘은 필수요소는 아니라고 생각합니다.
하지만 개발을 진행하다 보면 똑같은 출력을 요구하는 로직이라 하더라도 조금더 빠른 효율적인 코드와 비효율적인 코드가 존재할것입니다. 우리는 이러한 문제를 해결하기위해 알고리즘을 공부해야합니다. 알고리즘은 궁극적으로 메모리의 효율을 극대화 하고 빠른 성능으로 문제를 해결함으로써 올바른 문제 해결 능력 및 보일러 플레이트 코드의 방지 등등... 효율적 코드 작성을 위해선 필수적 요소라 말할수 있습니다.

필자가 알고리즘을 준비하는 가장큰 이유가 위에 해당됩니다.

공부 전략

그러면 어떻게 공부하고 언어는 어떻게 채택하여야 할까 ? 라는 고민을 하게 되었고 익숙한 js를 채택할까?
아니면 c++ 이나 python을 채택할까 ? 찾아보며 고민하던중 동빈나님의 영상을 접하게 되었고 해당영상에서
언어를 채택할때 어떤언어가 유리한지 설명을 듣게 되었습니다.
js 알고리즘은 생각보다 쟈료가 많지 않았고 비율상으로는 c++ 이나 python이 압도적으로 높으며 깊은 개념의 알고리즘은 c++이 유리하며 기본적인 python이 유리합니다.
필자 같은경우 처음 프로그래밍공부를 할때 java , python으로 프로그래밍을 접했으며 접근성이 좀더 좋은 파이썬이 알고리즘공부를 진행하기에 용이하다 판단하여 python을 채택했습니다.

출처 : 대기업 IT직군 코딩테스트 합격을 위한 현실적이고 직관적인 공부 순서
https://www.youtube.com/watch?v=ukkLCl9yBvE

공부 서적

저는 3가지의 책을 채택했습니다.

파이썬 알고리즘 인터뷰

부록에 이직 가이드 포함 및 문제와 설명이 고루 나와있는 책이라 판단하여 채택하게 되었습니다.

파이썬 코딩 도장

python 공부를 했을때 사용했던 책으로 기초개념 및 내용 함수참고 용으로 채택하게 되었습니다.

알고리즘 도감

해당책에는 알고리즘의 종류와 구조 , 사이클 등이 그림으로 설명되어 있어 글로만 되어있는 책보단 조금더 직관적으로 해당 개념들을 파악할수 있어 해당 서적을 채택했습니다.

리트코드

프로그래머스 , 백준 등등 여러가지의 코딩 테스트 사이트가 존재하지만 필자는 서적의 추천한 리트코드라는 사이트로 공부를 할예정입니다.

profile
Code Smell을 향기롭게 하자

0개의 댓글